如何在 Java HTTP 客户机中设置套接字超时
我们希望将所有apache-httpclient-4.x代码迁移到java-http-client代码中,以减少依赖性。在迁移它们时,我在java 11下遇到了以下问题:
如何在Java HTTP客户端中设置套接字超时?
使用apache-httpclient-4.x,我们可以设置连接超时和套接字超时,如下所示:
DefaultHttpClient httpClient = new DefaultHttpClient();
int timeout = 5; // seconds
HttpParams httpParams = httpClient.getParams();
httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout * 1000);
httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout * 1000);
使用java-http-client,我只能像这样设置连接超时:
HttpClient httpClient = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(5))
.build()
但是我发现没有办法设置套接字超时。将来有什么方法或一个悬而未决的问题来支持它吗?