美文网首页
HttpClients中https设置超时无效的问题

HttpClients中https设置超时无效的问题

作者: Gason_d796 | 来源:发表于2019-09-30 11:23 被阅读0次

    使用多线程https请求数据时,发现一段时间所有线程都锁住了,使用线程堆栈工具发现线程都锁住,堆栈信息如下

    堆栈图

    打了很多日志,发现请求超时时间超过自己设置的时间。

    查阅相关资料发现:

    1.httpclients有关于ssl锁导致设置超时无效的问题,但是在新版本后修复了该bug,自己用的是最新版本

    2.jdk的ssl有个bug也会导致该问题,在8的一些版本9中已经修复。

    3.HttpsClients中设置超时时间的需要如下设置

    ssl设置超时方式

    本人使用第三种方式解决了超时的问题,如果要彻底解决最好使用jdk的相关版本和HttpClients的最新版本

    参阅:

    https://www.cnblogs.com/bestruggle/p/9836749.html?tdsourcetag=s_pctim_aiomsg

    https://stackoverflow.com/questions/25968769/got-stuck-at-java-net-socketinputstream-socketread0native-method

    jdkbug:https://bugs.openjdk.java.net/browse/JDK-8075484

    相关文章

      网友评论

          本文标题:HttpClients中https设置超时无效的问题

          本文链接:https://www.haomeiwen.com/subject/iolrmqtx.html