首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Http Post和网络延迟

Http Post和网络延迟
EN

Stack Overflow用户
提问于 2012-05-08 19:17:55
回答 1查看 1.8K关注 0票数 1

在应用程序启动时,我需要对不同的web服务(php)进行大约15次调用。

我在这篇文章中使用了以下代码

代码语言:javascript
复制
public static String post(String url, List<BasicNameValuePair> 
           postvalues, HttpClient httpclient) {
    try {
        if (httpclient == null) {
            httpclient = new DefaultHttpClient();
        }
        HttpPost httppost = new HttpPost(url);

        if ((postvalues == null)) {
            postvalues = new ArrayList<BasicNameValuePair>();
        }
        httppost.setEntity(new UrlEncodedFormEntity(postvalues, "UTF-8"));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        return requestToString(response);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }

}



private static String requestToString(HttpResponse response) {
    String result = "";
    try {
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            str.append(line + "\n");
        }
        in.close();
        result = str.toString();
    } catch (Exception ex) {
        result = "Error";
    }
    return result;
}

问题是,一些请求必须以给定的顺序请求,每个请求需要大约1-2秒,因此“加载启动”大约需要10秒。

所以我的问题是:既然所有的连接都连接到同一台服务器,我如何才能改善这种延迟?有没有办法打开一个连接,并通过这个“隧道”发送所有的请愿书,以减少延迟?

注意:我测试了代码,并且在每个连接中使用新的httpclient重用请求花费了相同的时间

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-08 20:12:06

您考虑的是重用TCP连接的HTTP持久连接。

关于这个话题,Stackoverflow上已经有了一个很好的问答:

Persistent HttpURLConnections on Android

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10497560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档