CoreConnectionPNames已废弃,如何替换设置CONNECTION_TIMEOUT和SO_TIMEOUT的方法?
替换废弃的CoreConnectionPNames设置超时方案
Apache HttpClient 4.3及以上版本已废弃org.apache.http.params.CoreConnectionPNames,推荐使用RequestConfig来配置连接超时与套接字超时。结合SerenityRest的配置方式,你可以将代码修改为:
import org.apache.http.client.config.RequestConfig; public void setConfig(ContentType contentType, Integer timeout) { setConfig(SerenityRest.config() .sslConfig(new SSLConfig().allowAllHostnames().relaxedHTTPSValidation()) .httpClient(HttpClientConfig.httpClientConfig() .requestConfig(RequestConfig.custom() .setConnectTimeout(timeout) .setSocketTimeout(timeout) .build()))) .addHeader(HttpHeaders.CONTENT_TYPE, contentType.toString()); }
关键修改点:
- 移除基于
CoreConnectionPNames的setParam调用,改用RequestConfig.custom()构建配置实例 - 用
setConnectTimeout()替代原CONNECTION_TIMEOUT参数,设置连接超时时间 - 用
setSocketTimeout()替代原SO_TIMEOUT参数,设置套接字超时时间 - 保留原有的SSL宽松验证和Content-Type头配置逻辑
内容的提问来源于stack exchange,提问作者khadjolees
相关产品推荐
相关产品推荐

