今天分享一个巨坑,就是 HttpClient。这玩意有多坑呢?就是每个版本都变,近日笔者深受其害。
先看一下代码,我要发送请求调用一个c++接口。

public static String doPostWithJSON(String url, String json) throws Exception {CloseableHttpClient client = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.setHeader("Content-Type","application/json;charset=UTF-8");StringEntity se = new StringEntity(json,  Charset.forName("UTF-8"));se.setContentType("application/json");httpPost.setEntity(se);CloseableHttpResponse response =  client.execute(httpPost);HttpEntity entity = response.getEntity();String result = EntityUtils.toString(entity, "UTF-8");return result;
}

嗯,坑爹的地方来了,这个玩意发送请求,没设置超时时间,只要不响应,他能一直在这等着,这谁能受得了。
我要加个超时时间。
第二个大坑来了。
我记得以前设置超时时间是这样的。

client.setConnectionTimeout(10000);
client.setTimeout(10000);

我发现,特么没这个方法。
于是查阅资料。发现HttpClient太善变了。每个版本都变api。
4.3版本是这样的

httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,10000);
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,10000);

4.3以后是这样的。

RequestConfig requestConfig =  RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(10000).build();
httpGet.setConfig(requestConfig);

最后我根据我的版本,选了4.3的那种方式,解决问题。

HttpClient 如何设置超时时间相关推荐

  1. httpclient 设置超时时间_面试官:技术选型,HttpClient还是OkHttp?

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 来源:juejin.im/post/6844904040644476941 推荐 ...

  2. Java中HttpClient设置超时时间

    CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("ht ...

  3. apache httpclient4 设置超时时间

    2019独角兽企业重金招聘Python工程师标准>>> apache httpclient4 设置超时时间 旧的方法(已被禁用) CloseableHttpClient httpcl ...

  4. java设置post超时时间_HttpClient 如何设置超时时间

    搜索热词 今天分享一个巨坑,就是 HttpClient.这玩意有多坑呢?就是每个版本都变,近日笔者深受其害. 先看一下代码,我要发送请求调用一个c++接口. public static String ...

  5. RestTemplate 设置超时时间

    项目访问量大,频繁调取其他系统接口经常出现项目后台假死现象,发现其他系统掉线重启一段时间必现.查看调用接口,同事直接引用了RestTemplate但是没有设置超时时间->_<-. 两种方式 ...

  6. 【Java 网络编程】服务器端 ServerSocket 配置 ( 端口复用 | 缓冲区设置 | 超时时间 | 性能权重 | 端口绑定 )

    文章目录 I ServerSocket 端口号绑定参数 II ServerSocket 复用绑定端口设置 III ServerSocket 设置缓冲区大小 IV ServerSocket 设置超时时间 ...

  7. python给函数设置超时时间_在 Linux/Mac 下为Python函数添加超时时间的方法

    我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做 timeout ,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊 ...

  8. php如何发起远程请求,PHP请求远程地址如何设置超时时间

    PHP请求远程地址设置超时时间的方法:1.[file_get_contents]请求超时设置:2.fopen请求超时设置:3.curl请求超时设置. [相关学习推荐:php编程(视频)] PHP请求远 ...

  9. 同时设置超时时间_刚入职的小菜鸡,设错了RPC超时,搞了个线上事故

    上面这张监控图,对于服务端的研发同学来说再熟悉不过了.在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题. 尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结 ...

最新文章

  1. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2.1 可变大小数组
  2. 让容器跑得更快:CPU Burst 技术实践
  3. 压力测试和负载测试区别_如何理解与区分软件性能测试、负载测试、稳定性测试、压力测试...
  4. Generator简单了解
  5. 【HAVENT原创】Node Express API 通用配置
  6. 数据3分钟丨Databricks与Snowflake开撕;阿里云多款自研数据库支撑首个“100%云上双11”...
  7. 通过css裁切图片为菱形图片
  8. Angular4的QuickStart—— ES6 而非TypeScript
  9. 零件缝隙平行线距离检测4
  10. 自动接听电话的另一种思路(只需要root权限)
  11. android Tbs腾讯X5内核初始化失败
  12. 51单片机电路原理图_51单片机入门(第1篇):纯干货,单片机最小系统
  13. 【原创】php ssh2 远程秘钥登录华三防火墙F5030
  14. LNMP搭建HDwiki
  15. 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
  16. 2022中科院自动化所人工智能暑期学校(部分内容)
  17. 我的 “地形” 我做主
  18. 前后端分离研究,以及接口规范
  19. 常见文件类型的图标介绍
  20. 网页图片循环滚动播放效果

热门文章

  1. Java前沿分享:value或许成为java的新关键字
  2. 皮一皮:王大爷尽说些大实话...
  3. 每日一皮:每天到公司 VS 工作一小时后
  4. Jenkins:配置信息变更历史
  5. 程序员你为什么这么累【续】:如何应对需求变更
  6. CSS样式----文字样式
  7. nvidia驱动程序与windows版本不兼容
  8. allow_unreachable flag
  9. mxnet.gluon 加载预训练
  10. ninja Compiling the C compiler identification source file CMakeCCompilerId.c failed