使用android https时出错

使用android https时出错,android,droidquery,Android,Droidquery,我正在尝试使用我的php服务器登录我的应用程序。当我的服务器url类似于时,它可以正常工作,但当我的服务器地址以https://like开头时,问题就出现了,这给了我一个例外 javax.net.ssl.sslpeerunverifiedexception无对等证书 我的代码如下 public class Main extends Activity { public static DefaultHttpClient client; EditText useremail; EditText pas

我正在尝试使用我的php服务器登录我的应用程序。当我的服务器url类似于时,它可以正常工作,但当我的服务器地址以https://like开头时,问题就出现了,这给了我一个例外

javax.net.ssl.sslpeerunverifiedexception无对等证书

我的代码如下

public class Main extends Activity {
public static DefaultHttpClient client;
EditText useremail;
EditText password;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


Button login_button= (Button) findViewById(R.id.login_button);
login_button.setOnClickListener(new View.OnClickListener() {
@SuppressLint("NewApi")
@Override
public void onClick(View v) {
try{    
useremail=(EditText) findViewById(R.id.useremail);  
String useremail_string=useremail.getText().toString();
password=(EditText) findViewById(R.id.password);    
String password_string=password.getText().toString();

if("".equals(useremail_string) || "".equals(password_string)){
Toast.makeText(getApplicationContext(), "Empty field detected", Toast.LENGTH_SHORT).show(); 
}//empty check

/***Login process begin***/
else{
String s="";
String d="";
try {
StrictMode.enableDefaults();                    
JSONObject json = new JSONObject();
json.put("username", useremail_string);
json.put("password", password_string);
client = new DefaultHttpClient();
String url = "https://www.myservername.com/mobile_app/login/check_user";
HttpPost request = new HttpPost(url);
request.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
request.setHeader("json", json.toString());
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null){
InputStream instream = entity.getContent();
String result="";
try{
BufferedReader reader= new BufferedReader(new InputStreamReader(instream,"iso-8859-1"),8);  
StringBuilder sb=new StringBuilder();
String line=null;
while((line=reader.readLine())!=null){
sb.append(line+"\n"); }
instream.close();
result= sb.toString();
}catch(Exception e){}
JSONArray jArray= new JSONArray(result);
JSONObject getjson=jArray.getJSONObject(0);
s=getjson.getString("message");
d=getjson.getString("data");
if("success".equals(s))
{   
password.setText(null);  
SharedPreferences share= getSharedPreferences("Userdata", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=share.edit();
editor.putString("session_value", d);
editor.commit();

Intent profile=new Intent(Main.this,BidActivity.class);
profile.putExtra(EXTRA_MESSAGE, d);
startActivity(profile);
}
else
{
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();

}}    
}catch(Throwable t){}
}
/***Login process end***/
}catch(Exception e){  } 
}}); 
}   
}// end of function onCreate

}//end of class

请帮助大家…

这是服务器上SSL证书设置的错误。您的代码运行良好。大约一个月前,我遇到了同样的问题。查看更多信息。也可以搜索类似的问题

编辑

如果您认为SSL证书是正确的,您可以禁用证书的Android检查,但这是不赞成的。更多:


如果您对此实现有困难,请提供一个实现(代码)。您还可以使用droidQuery AjaxOption
trustAllSSLCertificates
来使用库本身。有关这方面的更多信息,请参阅。

您在服务器上使用的是有效的SSL证书吗?@Lefteris感谢您的回复…是的,我的SSL证书有效且绝对真实…这不是答案,而是我要说的一句话谢谢@Phil。。我能从我的android应用程序中克服这个异常吗…??@Brett,你只能通过使用
http
来克服它。如果需要SSL,则必须在服务器上修复它。我用这个链接检查我的域名ssl…它说它是完全可信的…@Lefteris这回答了问题,这不是评论的重点。