热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HttpClient长连接的问题

最近在研究httpclient保持长连接是否能提高响应速度的问题。想先请求百度首页,然后再向贴吧发请求,看在已经跟首页取得连接的情况下再请求贴吧会不会更快HttpGethttpget
最近在研究httpclient保持长连接是否能提高响应速度的问题。
想先请求百度首页,然后再向贴吧发请求,看在已经跟首页取得连接的情况下再请求贴吧会不会更快

HttpGet httpget = new HttpGet("http://www.baidu.com/");//百度首页
HttpGet httpget2 = new HttpGet("http://tieba.baidu.com/index.html");//贴


httpclient = new DefaultHttpClient();
t1 = System.currentTimeMillis();
HttpResponse response = httpclient.execute(httpget1);
t2 = System.currentTimeMillis();
response.getEntity().consumeContent();
/*
httpclient.getConnectionManager().shutdown(); //关掉链接
httpclient = new DefaultHttpClient();
*/
t3 = System.currentTimeMillis();
response = httpclient.execute(httpget2);
t4 = System.currentTimeMillis();
response.getEntity().consumeContent();
httpclient.getConnectionManager().shutdown();

System.out.println("connect1:" + (t2-t1));
System.out.println("connect2:" + (t4-t3));

注释掉那部分是可选的,用来比较关和不关连接所用的时间
上面得出一个很奇怪的结论,
关掉连接时用时比不关还少,就是说关掉连接之后再发请求会更快

理论上保持连接响应会更快才对吧?迷惑中~~求解救 

4 个解决方案

#1


给个大概数据参考
执行shutdown时,t1=280 t2=150
不执行shutdown时,t1=280 t2=220

#2


疏忽,上面的数据应该是
connect1:280   connect2:150

connect1:280   connect2:220
求解答!

#3


不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。

#4


引用 3 楼 lyon_z 的回复:
不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。


对我知道,但如果我在客户端执行shutdown不就是我主动关闭连接了么

我最初意图是想验证长连接是否可以节省连接耗时,能节省多少

推荐阅读
author-avatar
淡淡木香coolgirl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有