热门标签 | 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不就是我主动关闭连接了么

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

推荐阅读
  • C#爬虫Fiddler插件开发自动生成代码
    哈喽^_^一般我们在编写网页爬虫的时候经常会使用到Fiddler这个工具来分析http包,而且通常并不是分析一个包就够了的,所以为了把更多的时间放在分析http包上,自动化生成 ... [详细]
  • 本篇文章给大家分享的是有关如何正确的使用HttpClient方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不 ... [详细]
  • 今天就跟大家聊聊有关HttpComponents中如何使用HttpClient连接池,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 提升接口测试效率的关键:用例与工具的综合应用
    本文将探讨如何通过有效的接口测试用例设计和工具选择,显著提高接口测试的效率和质量。 ... [详细]
  • 搜索引擎架构设计
    本文详细介绍了搜索引擎的主要组成部分,包括爬虫模块、索引模块和搜索模块。其中,索引模块采用了高效的二元分词技术进行数据存储,而搜索模块则基于ASP.NET框架实现了一个用户友好的界面和高效的搜索算法。 ... [详细]
  • PHP 5.4.8 编译安装指南
    本文详细介绍了如何在Linux环境下编译安装PHP 5.4.8,并配置为FastCGI模式运行。包括所需依赖包的安装、源代码下载、编译配置及启动服务等步骤。 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • 本文主要解决了在编译CM10.2时出现的关于Samsung Exynos 4 HDMI HAL库中SecHdmiV4L2Utils.cpp文件的编译错误。 ... [详细]
  • 本文详细解析了Java中流的概念,特别是OutputStream和InputStream的区别,并通过实际案例介绍了如何实现Java对象的序列化。文章不仅解释了流的基本概念,还探讨了序列化的重要性和具体实现步骤。 ... [详细]
  • 本文探讨了在使用Apache HttpClient 4.x(作为commons-httpclient 3.x的后续版本)时,如何配置默认的HttpContext,以确保每次执行请求时无需显式传递上下文。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 本文介绍如何通过Java代码调用阿里云短信服务API来实现短信验证码的发送功能,包括必要的依赖添加和关键代码示例。 ... [详细]
  • 本文探讨了在AspNetForums平台中实施基于角色的权限控制系统的方法,旨在为不同级别的用户提供合适的访问权限,确保系统的安全性和可用性。 ... [详细]
  • HttpClient作为官方推荐的http客户端,相比之前的WebClient和WebRequest好用了很多,但默认无法为每个请求单独设置超时,只能给HttpClient设置默认 ... [详细]
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社区 版权所有