RestTemplate HttpClient connectionRequestTimeout



为了配置RestTemplate,我使用以下配置:

HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
httpRequestFactory.setConnectTimeout(connectionTimeoutMs);
httpRequestFactory.setConnectionRequestTimeout(readTimeoutMs);
httpRequestFactory.setReadTimeout(readTimeoutMs);
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);

我了解连接和读取超时的目的。但我不明白连接请求超时的目的。Javadoc也不清楚这意味着什么。你能解释一下吗?

正如文档所说:

设置从以下位置请求连接时使用的超时(以毫秒为单位( 使用基础 HttpClient 的连接管理器。

这意味着您允许连接管理器从其池中为您提供可用连接的最长时间(因此它与您将访问的REST服务本身无关(。

要定义自定义连接管理器,可以使用以下内容:

CloseableHttpClient httpClientBuilder = HttpClientBuilder.create().setConnectionManager(...).build();
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClientBuilder);

相关内容

  • 没有找到相关文章

最新更新