【发布时间】:2015-05-06 06:25:51
【问题描述】:
我有一个用 java 编写的用于 android 应用程序的代码。通过使用 HttpPost 和 DefaultHttpClient 库。目前,我正在重新编码它以用 HttpURLConnection 替换 HttpPost 和 DefaultHttpClient 库,因为 DefaultHttpClient 已被贬低。 我已经为我的一个项目完成了它,并且成功了。
但在当前项目中,使用 HttpURLConnection 而不是 DefaultHttpClient 时,我没有从 web 服务获得相同的响应。谁能帮我解决我做错的地方?
这是旧代码:
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
String postParameter = "Param1=" + Value1 + "&Param2="+ Value2+ "&Param3="+Value3;
try {
httpPost.setEntity(new StringEntity(postParameter));
} catch (Exception e) {
e.printStackTrace();
}
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);
这是我的新代码
_Url = new URL(Url);
HttpURLConnection urlconnection = (HttpURLConnection) _Url.openConnection();
urlconnection.setRequestMethod(Type);
urlconnection.setConnectTimeout(Timeout);
urlconnection.setUseCaches(false);
urlconnection.setDoInput(true);
urlconnection.setDoOutput(true);
String postParameter = "Param1=" + Value1 + "&Param2="+ Value2+ "&Param3="+Value3;
BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os));
writer.write(postParameter);
writer.flush();
writer.close();
os.close();
urlconnection.connect();
代码运行没有任何错误,但 web 服务给出的响应与旧代码不同。
【问题讨论】:
标签: java android http-post httpurlconnection