##HttpClient几个主要概念
- CloseableHttpClient
用于发送请求,因为是线程安全的,所以只需要在程序中创建一个单例。 - RequestConfig
用于配置每个请求的各项timeout等等 - PoolingHttpClientConnectionManager
用于配置连接池 - ConnetionKeepAliveStrategy
用于创建KeepAlive策略。 - HTTP 1.1长连接
HTTP 1.1默认支持长连接,在header中会带有keep-alive。
使用HttpClient的线程池,可以利用开启的长连接来减少创建连接的开销。
在整个集成HttpClient的过程中,主要顺序是:
配置KeepAlive策略 -> 配置连接池 -> 配置RequestConfig -> 配置HttpClient
另外也可以通HttpClient来配置自己的RestTemplate
##HttpClient集成
依赖:org.apache.httpcomponents:httpclient:4.5.7
集成配置(Kotlin)
@Configuration
class HttpConfig {
@Primary
@Bean
fun httpClient(requestConfig: RequestConfig, httpClientConnectionManager: HttpClientConnectionManager): CloseableHttpClient {
return HttpClientBuilder
.cre