为了配置RestTemplate,我使用以下配置:
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(HttpClients.createDefault());
httpRequestFactory.setConnectTimeout(connectionTimeoutMs);
httpRequestFactory.setConnectionRequestTimeout(readTimeoutMs);
httpRequestFactory.setReadTimeout(readTimeoutMs);
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);我理解连接和读取超时的目的。但我不明白连接请求超时的目的。Javadoc也不清楚这意味着什么。你能解释一下吗?
发布于 2018-08-15 08:00:07
正如文档所说:
使用基础HttpClient从连接管理器请求连接时,以毫秒为单位设置超时。
这意味着您将允许连接管理器从其池中为您提供可用连接的最大时间(因此它与您将要到达的REST服务本身无关)。
要定义自定义连接管理器,可以使用以下命令:
CloseableHttpClient httpClientBuilder = HttpClientBuilder.create().setConnectionManager(...).build();
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClientBuilder);https://stackoverflow.com/questions/51853821
复制相似问题