导入的jar包:httpcore-4.4.10.jar
public static void doPost(String url, String json){
String result = null;
try {
String endoderJson = URLEncoder.encode(json,HTTP.UTF_8);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(DCHelper.LOG_PATH);
post.addHeader(HTTP.CONTENT_TYPE, "application/json");
StringEntity se = new StringEntity(endoderJson);
// se.setContentType("text/json");
// se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));
post.setEntity(se);
HttpResponse response = (HttpResponse) client.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
result = EntityUtils.toString(response.getEntity());
Log.d("HttpUtils result:", result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
对于之前老版本的jar包,post的参数json请求正常。
更新之后的版本,post的setEntity()添加参数,将
post.addHeader(HTTP.CONTENT_TYPE, "application/json");
修改成
post.addHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded");
即可正常请求。
本篇为原创博客,仅供学习参考,如需转载-保持署名-注明出处。