2017-05-10 27 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

回答