搜索热词

今天分享一个巨坑,就是 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的那种方式,解决问题。

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java设置post超时时间_HttpClient 如何设置超时时间相关推荐

  1. hset 设置超时_Redis分布式事务中超时时间如何设置?

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists ...

  2. Linux给命令设置超时时间,Linux命令技巧和时间设置

    1./bin/command  :All users 2.cd Shell内部指令,不在任何目录下 cd -   回到上次访问的目录 cd !$  进入上次访问的目录 cd ~和cd都是回到家目录 3 ...

  3. java时间的整的表达式_Quartz中时间表达式的设置-----corn表达式

    Quartz中时间表达式的设置-----corn表达式 时间格式: ,   分别对应: 秒>分>小时>日>月>周>年, 举例: 1.每天什么时候执行: 0 59 2 ...

  4. 我的世界java白天_我的世界怎么设置游戏内的时间为白天

    我的世界怎么设置游戏内的时间为白天 本篇教程将用图文的形式一步步教会你在我的世界中怎么设置游戏内的时间为白天. 当我的世界游戏中的时间变为夜晚的时候,你可以使用秘籍(游戏命令)快速将时间切换为白天. ...

  5. java 时间表达式_【JAVA】Quartz中时间表达式的设置

    Quartz中时间表达式的设置-----corn表达式 时间格式: ,   分别对应: 秒>分>小时>日>月>周>年, 举例: 1.每天什么时候执行: 0 59 2 ...

  6. java手表怎么设置时间设置时间设置_佳明手表怎么设置时间?

    随着近期人们对健身的热衷,许多腕表厂商纷纷开发起了运动腕表,其中就有一个名为佳明的手表品牌开始为人们所了解,那么你知道佳明手表怎么设置时间吗?下面就由小编来为大家科普一下吧! 佳明手表怎么设置时间?想 ...

  7. HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析

    最近有个需求需要对于获取URL页面进行host绑定并且立即生效,在java里面实现可以用代理服务器来实现:因为在测试环境下可能需要通过绑定来访问测试环境的应用 实现代码如下: public stati ...

  8. Linux的SSH登录超时自动断开连接设置

    关于ssh登录超时断开连接的设置有两个方面可以设置 1.修改sshd服务的配置文件sshd_config的内容 #ClientAliveInterval 0   指定了服务器向客户端请求消息的时间间隔 ...

  9. linux 设置dns缓存周期,如何解决DNS缓存时间问题

    理想情况下,各地DNS的缓存时间即为设置的ttl时间,所以可以通过设置ttl时间来控制DNS缓存的时间.ttl时间设置的短,DNS缓存过期快,在机器故障的时候很快切换,对用户的影响小:但是由于ttl设 ...

最新文章

  1. 超实用 Linux下通过VNC安装Oracle
  2. 重温强化学习之无模型学习方法:时间差分方法
  3. 【学习笔记】springboot的过滤器与拦截器的使用 springboot的事件驱动模型
  4. CyclicBarrier 和CountDownLatch使用详解
  5. Java中导入、导出Excel——HSSFWorkbook 使用
  6. xgboost: 速度快效果好的boosting模型
  7. (5)通过输入参数(测量数据)构建二维体模型(01)
  8. 软件测试的金字塔体系--从1个中心到5个要素
  9. Protel 99SE在Win10下按键就卡,无法使用
  10. Urlrewrite地址重写
  11. (软考)系统分析师——标准化知识
  12. 用java输入学生姓名查询成绩_java实现学生成绩录入系统
  13. 计算机网络 第七章 网络安全
  14. c语言fgetc函数作用,C语言fputc()和fgetc()函数
  15. 十五、圣礼是蒙恩的凭藉
  16. Python学习之路:列表(List)的append()、extend()与insert()方法
  17. 亚马逊登陆显示服务器出错,Amazon CloudFront常见错误配置及解决方法
  18. 以太坊POA共识算法解析
  19. 服务器在bios下也自动关机,十大常见的内存BIOS故障现象及解决方案
  20. Play.ht训练出播客乔布斯/用嘴做视频?Meta出品/我国牵头发布首个自动驾驶测试场景领域国际标准...

热门文章

  1. react redux mysql_实现React-redux的基本功能
  2. div点击穿透,CSS属性pointer-events :none;实现护眼模式, 夜间模式遮罩
  3. 【leetcode】算法题记录(111-120)
  4. emp和emn是什么文件,emnemp是什么文件
  5. linux无线网卡驱动分析,基于Linux的无线网卡驱动程序
  6. ih5学习笔记_事件对象
  7. sRGB,RAW图像意义
  8. 如何缓解百度网盘限速问题
  9. AI智能视频分析系统提升水泥厂安全监管解决方案
  10. Cond:条件变量源码解读