Android中的Http网络操作请求

时间:2014-04-25 18:56:11

标签: android

你好,我是Android中的菜鸟。正如您所知,在进行网络请求(WebAPI调用)时,无论何时进行任何Web API调用,都会获得HttpClientHttpResponseHttpPost这些连接,并且在完成所有操作后,您将关闭此http连接。

因此,如果您需要在不同时间为您的应用程序进行50次以上的WebAPI调用最好每次都创建httpclient并进行处理然后关闭,然后对其他请求重复相同的过程。

HttpPost httpPost = new HttpPost(uploadIssueUrlStr + "/patrol-api/issues");
HttpClient httpclient = new DefaultHttpClient();
List<NameValuePair> nameValueParams = new ArrayList<NameValuePair>();
nameValueParams.add(new BasicNameValuePair("patrol_sid", patrolIdPar));
nameValueParams.add(new BasicNameValuePair("isuDescription", descriptionPar));
nameValueParams.add(new BasicNameValuePair("isuDate", datePar));
nameValueParams.add(new BasicNameValuePair("isuTime", timePar));
httpPost.setEntity(new UrlEncodedFormEntity(nameValueParams));

HttpResponse response = httpclient.execute(httpPost);
String mApiResponse = null;
mApiResponse = EntityUtils.toString(response.getEntity());

我已经知道Volley和Retrofit对你有好处,但请让我知道我的问题的答案。

2 个答案:

答案 0 :(得分:0)

我建议使用Volley。 它可以处理请求队列。

Video介绍。

Demo代码。

如果您仍想使用HttpClient,则应创建DefaultHttpsClient的静态实例,并且每次都使用相同的实例。

答案 1 :(得分:0)

HttpClient Optimization Guide

  

通常建议每个通信组件或每个应用程序都有一个HttpClient实例

HttpClient Threading Guide

  

在执行期间,每个方法都使用HttpConnection的实例。由于连接一次只能从单个线程和方法安全使用并且是有限的资源,因此我们需要确保将连接正确分配给需要它们的方法。此作业转到MultiThreadedHttpConnectionManager