以下是一段有问题的代码:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
HttpClient mHttpClient = new DefaultHttpClient();
nameValuePairs.add(new BasicNameValuePair(strName1, strValue1));
nameValuePairs.add(new BasicNameValuePair(strName2, strValue2));
post = new HttpPost(strPostURL);
post.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
HttpResponse response = mHttpClient.execute(post);
strPostURL以“https://”开头。
此代码在最后一行失败 - 抛出以下异常:
WARN/System.err(7151): org.apache.http.client.ClientProtocolException
WARN/System.err(7151): Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
我已经针对Froyo(2.2)和Gingerbread(2.3.3)平台尝试了此代码,它仅适用于2.3.3。仿真器也有相同的结果。
当我在我的测试服务器上尝试常规HTTP POST时,Froyo和Gingerbread都运行良好,因此必须有一些特定的HTTPS导致此问题。
如果有问题,我也使用httpmime-4.1.2.jar来处理代码后面的多部分附件,所以这个jar包含在我的构建路径中。
有人可以指出我做错了吗?