当前位置:网站首页 > Java教程 > 正文

java httpclient教程



本文示例代码基于 4.5.13 版本

转载请注明出处:https://www.cnblogs.com/qnlcy/p/15378446.html

Apache 提供用来做http请求的项目有两个,3.x 版本的项目叫做 。

它一开始是 下的子项目,后来独立出去了,现在这个项目已经结束了它的生命周期,不再开发和维护。

取而代之的是 4.x 版本的 项目,它包括 和 两大模块,能提供更好的性能和更大的灵活性。

项目包括 和 两大模块,其中, 是一套HTTP协议实现包。而 是基于HttpCore的一套客户端。

使用 需要经过如下步骤

  1. 创建
  2. 创建 http 请求,如 、
  3. 添加请求参数
  4. 添加请求设置,如超时等
  5. 使用 执行 http 请求
  6. 读取返回内容并释放连接

3.1.1 创建默认客户端:


一些重要的默认配置:

  • 默认连接池大小10,每域名最大连接5
  • 连接池中连接存活时间 ,默认单位为毫秒,默认连接不失效
  • 域名验证器为 , 会验证域名
  • SSL 上下文为 ,没有使用密钥管理器()和信任管理器()

3.1.2 自定义客户端

  • 失败不重试

  • 自定义连接池


创建 、 请求






3.4.1 超时时间说明

超时类型 说明 connectionTimeout 连接建立时间,即3次握手时间,默认值-1 socketTimeout 连接后,数据传输过程中的最大时间,默认值-1 connectionRequestTimeout 从连接池获取连接的超时时间,默认值-1

去哪里吃鱼 https://www.cnblogs.com/qnlcy/

注意:

和 如果不设置,请求会阻塞。

但是 的情况有所不同,它依赖于各平台的 超时时间设置。

windows 10 实测为 20s, linux 平台则不定,它会按 中配置的次数重试,一般为3s7s15s31s63s递增

另外,即使 java 程序返回了超时结果,但是linux服务器依旧在执行重试直到服务器端超时,为了提高资源利用率,可以手动关闭

关于 linux socket 超时的问题,请参阅 无毁的湖光-Al 的 从linux源码看socket(tcp)的timeout

执行 http 请求比较简单,直接调用 方法即可



服务器返回结果被封装到 对象里,我们可以从这里拿到我们想要的返回结果


                            

  • 上一篇: oa开发java教程
  • 下一篇: java遮罩使用教程
  • 版权声明


    相关文章:

  • oa开发java教程2024-10-11 09:14:03
  • java转换器教程2024-10-11 09:14:03
  • java开发微信公众号教程2024-10-11 09:14:03
  • 贪吃蛇 java 教程2024-10-11 09:14:03
  • java刷新config教程2024-10-11 09:14:03
  • java遮罩使用教程2024-10-11 09:14:03
  • java教程3122024-10-11 09:14:03
  • java扫码教程2024-10-11 09:14:03
  • java基础教程1332024-10-11 09:14:03
  • java木板小屋教程2024-10-11 09:14:03