httpclient 连接参数
http.socket.timeout(读取超时)
套接字毫秒级超时时间(SO_TIMEOUT),这就是等待数据,换句话说,在两个连续的数据包之间最大的闲置时间。
如果超时是0表示无限大的超时时间,即这个参数没有设置或为0表示读取超时时间为无限大
http.tcp.nodelay
决定了是否使用Nagle算法。该算法通过最小发送的分组数量来节省带宽。
当应用程序希望降低网络延迟并提高性能时,他们可以关闭nagle算法。
如果这个参数没有被设置表示TCP_NODELAY就会开启(无延迟)
http.socket.buffer-size
决定了内部套接字缓存使用的大小,来缓存数据同时接受、传输http报文。
这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置,那么Httpclient将会分配8192字节的套接字缓存。
得到一个java.lang.Integer类型的值。如果这个参数没有被设置,那么Httpclient将会分配8192字节的套接字缓存。
http.socket.linger
使用指定的秒数拖延时间来设置SO_LINGER。最大的连接超时值是平台指定的。
0表示该选项是关闭的。-1表示该选项默认使用的是JRE默认的。这个选项仅仅影响了套接字的关闭操作,如果这个参数没有被设置就假设为-1(JRE)默认的
http.connection.timeout
决定了知道连接建立时的毫秒级超时时间。
超时时间的值为0解释为一个无限大的时间,这个参数期望得到一个java.lang.Integer类型的值。如果这个参数没有被设置,连接操作将不会超时。
http.socket.stalecheck
决定了是否使用旧的连接检查。当在一个连接之上执行一个请求服务器端的连接已经关闭时,关闭旧的连接检查可能导致获得一个IO错误风险时显著的性能提升,
出于性能的关键操作,这个检查应该被关闭。如果这个参数没有被设置那么久的连接将会在每个请求执行之前执行。
http.connection.max-line-length
决定了最大请求行长度的限制。如果设置为一个正数,任何Http请求超时这个限制将会引发java.io.Exception异常。
负数或零将会关闭这个检查。如果这个参数没有设置,那么就不强制进行限制了。
http.connection.max-header-count
决定了允许的最大HTTP头部信息数量。如果设置为一个正数,从数据流中获得HTTP头部信息数量超过了这个限制就会引发java.io.IOException异常。
负数或零将会关闭这个检查。如果这个参数没有被设置那么就不强制进行设置了。
http.connection.max-status-line.garbage
决定了在期望得到http响应状态行之前可忽略请求行的最大数量。使用http1.1持久性连接,这个问题产生的破碎的脚本将会返回一个错误Content-length
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(10*1000)
.setConnectTimeout(10*1000)
.build();
HttpGet httpGet = new HttpGet("http://192.168.56.101:7070");
httpGet.setConfig(requestConfig);
CloseableHttpResponse response= null;
try {
response=httpClient.execute(httpGet);
/**
* 获取连接状态code
*/
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==200){
System.out.println("连接成功!");
}
response.close();
}catch (Exception e){
e.printStackTrace();
}finally {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
httpclient 连接参数的更多相关文章
- HttpClient 模拟发送Post和Get请求 并用fastjson对返回json字符串数据解析,和HttpClient一些参数方法的deprecated(弃用)的综合总结
最近在做一个接口调用的时候用到Apache的httpclient时候,发现引入最新版本4.5,DefaultHttpClient等老版本常用的类已经过时了,不推荐使用了:去官网看了一下在4.3之后就抛 ...
- httpClient 连接池问题出现403.9
困扰了半个月时间终于找到连接池的问题,由于调用第三方有异常导致连接不能及时释放 所以写了一个定时扫描释放连接 监控连接池释放连接: public static class IdleConnection ...
- (五)HttpClient 连接超时及读取超时
第一节: HttpClient 连接超时及读取超时 HttpClient连接超时及读取超时 httpClient在执行具体http请求时候 有一个连接的时间和读取内容的时间: HttpClient连接 ...
- HttpClient连接超时及读取超时
HttpClient连接超时及读取超时 httpClient在执行具体http请求时候 有一个连接的时间和读取内容的时间: HttpClient连接时间 所谓连接的时候 是HttpClient发送请求 ...
- HttpClient连接池的一些思考
前言 使用apache的httpclient进行http的交互处理已经很长时间了,而httpclient实例则使用了http连接池,想必大家也没有关心过连接池的管理.事实上,通过分析httpclien ...
- HttpClient实战三:Spring整合HttpClient连接池
简介 在微服务架构或者REST API项目中,使用Spring管理Bean是很常见的,在项目中HttpClient使用的一种最常见方式就是:使用Spring容器XML配置方式代替Java编码方式进行H ...
- HttpClient连接池设置引发的一次雪崩
事件背景 我在凤巢团队独立搭建和运维的一个高流量的推广实况系统,是通过HttpClient 调用大搜的实况服务.最近经常出现Address already in use (Bind failed)的问 ...
- 低功耗蓝牙BLE之连接事件、连接参数和更新方法
转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件 ...
- Http持久连接与HttpClient连接池
一.背景 HTTP协议是无状态的协议,即每一次请求都是互相独立的.因此它的最初实现是,每一个http请求都会打开一个tcp socket连接,当交互完毕后会关闭这个连接. HTTP协议是全双工的协议, ...
随机推荐
- msf辅助模块的应用
msf辅助模块的应用 创建一个msf所需的数据库 进入模块 设置相关参数 查看 开启扫描
- 20145312《网络对抗》MSF基础
20145312<网络对抗>MSF基础 实验要求 1.掌握metasploit的基本应用方式 2.掌握常用的三种攻击方式的思路 实验问答 用自己的话解释什么是exploit.payload ...
- 微信小程序——2、配置json文件
配置文件详解 主配置文件app.json 主配置文件位于主目录中,用于进行全局配置.包括页面文件的路径.窗口表现.设置网络超时时间.设置多tab等 下面通过微信最初自带小程序来学习 { "p ...
- [noip模拟题]LGTB 玩THD
LGTB 最近在玩一个类似DOTA 的游戏名叫THD 有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi 每一秒,他都可以攻击任意一个活着的 ...
- AS不能在手机上现在调试软件
这两天遇到的一个问题,(android studio2.0以上的版本),在在线调试应用的时候,将手机上的此程序卸载了,然后准备重新再AS中将这个程序推送到手机上,可是这时候发现不能推送,Log显示什么 ...
- Python3基础 list 访问列表中的列表的元素
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 《js高级程序设计》--第三章数据类型
一.关键字 二.保留字 三.数据类型 (数据类型具有动态性) 1.Undefined 声明变量却未对其加以初始化(赋值) 2.Null null值表示一个空对象指针,而这也正是使用typeof操作 ...
- [Shiro] - Shiro之进阶
上一个知识点ssm, 哪里需要权限,哪里写注解@RequirePermission就行. 但是,真正项目开发的时候, 这种方式就很有局限性了, 当权限配置关系发生变化, 每次都要修改代码, 编译打包重 ...
- UVa 127 纸牌游戏(栈)
https://vjudge.net/problem/UVA-127 题意: 按从左至右的顺序发牌,并摆成一行,发牌不要相互重叠.游戏中一旦出现任何一张牌与它左边的第一张或第三张“匹配”,即花色或点数 ...
- Django Python MySQL Linux 开发环境搭建
Django Python MySQL Linux 开发环境搭建 1.安装Python 进行Python开发,首先必须安装python,对于linux 或者Mac 用户,python已经预装. 在命令 ...