我曾经用HTTP连接到php for mysql,现在我被要求使用HTTPS,因为它更安全。但我尝试了很多方法,但无法让平板电脑POST或获取任何信息,我做了一个自签名证书,并添加到本地计算机信任区,所以我不会被问及它是不是验证我想继续,我尝试通过浏览器连接,它工作正常,打印我需要的所有信息,但不是通过应用程序。我附加了我需要更改为HTTPS的以前的HTTP代码。希望有一些帮助来改变这种与HTTPS的连接。
httpclient = new DefaultHttpClient();
httppost = new HttpPost ("http://xx.xx.xx.xx/E-MENU/login.php");
username = etUser.getText().toString();
password = etPass.getText().toString();
password = md5(SHA1(password));
try{
nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("password", password));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
if(response.getStatusLine().getStatusCode() == 200){
entity = response.getEntity();
if (entity!= null){
InputStream instream = entity.getContent();
JSONObject jsonResponse = new JSONObject (convertStreamToString(instream));
感谢Upfront。
答案 0 :(得分:1)
所以当你使用HTTP而不是HTTPS时它可以工作吗?该问题将由服务器上不受Android信任的自签名证书引起。
请参阅此问题的已接受答案:Self-signed SSL acceptance on Android