spring - 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);
推荐阅读
- node.js - 带有等待的猫鼬查询返回未定义
- python - 使用python ev3进行多线程,连接方法不起作用
- docker - Powershell:使用docker时从错误流重定向输出的问题
- python - (Discord.py) 使用 on_guild_join 事件为 dm 消息添加延迟
- c - 如何查找和替换 C 字符串中的多个或所有出现
- r - 在R中仅计算自然数的差异
- core-data - 将更新保存到 Core Data 对象
- javascript - 将固定查询字符串连接或附加到 javascript 中的 url
- .htaccess - Htaccess 只允许移动设备访问目录
- python - 如何使用地图功能比较和填写数据框?