java.net.http.HttpClient中的超时未按预期工作

java.net.http.HttpClient中的超时未按预期工作,java,Java,具有100ms超时的Java Http客户端在连接到API时引发超时异常 我已经验证了api在10毫秒内响应curl调用 curl——最大时间0.01http://localhost:8000/ 当我以100ms超时多次运行测试时。很少有实例能够成功响应。对于更大的超时(如150ms),我没有遇到超时异常 如果设置得更高,它最终会开始工作吗?更新了问题。请看一看。它是在100ms后超时(即,使用Java连接比使用curl连接需要更长的时间),还是超时更快(即,连接速度相同,但您提供的超时参数被误

具有100ms超时的Java Http客户端在连接到API时引发超时异常

  • 我已经验证了api在10毫秒内响应curl调用

    curl——最大时间0.01http://localhost:8000/


  • 当我以100ms超时多次运行测试时。很少有实例能够成功响应。对于更大的超时(如150ms),我没有遇到超时异常

    如果设置得更高,它最终会开始工作吗?更新了问题。请看一看。它是在100ms后超时(即,使用Java连接比使用curl连接需要更长的时间),还是超时更快(即,连接速度相同,但您提供的超时参数被误解)?两个非常不同的基本问题可以缩小范围。
    HttpClient
    可能正在做其他事情,比如管理线程,所以我不希望它的性能像curl一样好。@MaxVollmer我已经更新了这个问题。在我看来,超时的解释是正确的,但java客户端需要时间。
    Time taken 159
    
    java.net.http.HttpTimeoutException: request timed out
        at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:559)
        at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
    
    Time taken 159
    
    java.net.http.HttpTimeoutException: request timed out
        at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:559)
        at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)