2017-05-10 30 views
0

在我的应用程序中,我使用HTTPClient,但是depreceted,我想补充这AsyncHttpClient。这是我的代码,我使用的HttpClient和它的作品corretly:Java的Android补充HTTPClient AsyncHttpClient

HttpClient httpclient = HttpClientUtil.getHttpClient(context); 
     HttpPost httppost = new HttpPost(Util.getServerUrl(context) 
       + "/GetData"); 
     String login_xml = QueryGenerator.getDataRequest(version, power, lon, 
       lat, radius, Util.getLastStamp(context)); 

     ArrayList<NameValuePair> namevaluepairs = new ArrayList<>(2); 
     namevaluepairs.add(new BasicNameValuePair("token", String 
       .valueOf(E_Gps.TOKEN))); 
     namevaluepairs.add(new BasicNameValuePair("xml", login_xml)); 
     httppost.setEntity(new UrlEncodedFormEntity(namevaluepairs, HTTP.UTF_8)); 
     HttpResponse response = httpclient.execute(httppost); 
     InputStream responseInputStream = new BufferedInputStream(response 
       .getEntity().getContent()); 

这是我在做AsyncHttpClient但它不corretly工作:

AsyncHttpClient client = new AsyncHttpClient(); 
String url = Util.getServerUrl(context) + "/GetData"; 
ContentValues values=new ContentValues(); 
values.put("token", String.valueOf(E_Gps.TOKEN)); 
values.put("xml", login_xml); 
StringEntity entity = null; 
try { 
    entity = new StringEntity(values.toString()); 
} catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
} 
entity.setContentType(new BasicHeader("Content-Type","application/xml")); 

client.post(context,url,entity, "application/xml", new AsyncHttpResponseHandler(Looper.getMainLooper()) { 

    @Override 
    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
     Log.e("success_noti", new String(responseBody) + ""); 

    } 

    @Override 
    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
     Log.e("success_noti", new String(responseBody) + ""); 
     Log.e("Status " , statusCode + " "); 
    } 

}); 
+0

那么什么是不正确的? – greenapps

+0

@greenapps服务器的响应是400错误的请求 –

+0

“application/xml”不正确。改为使用表单url编码。谷歌正确的描述。 – greenapps

回答