HttpClient设置tls v1.2
时间: 2023-12-15 14:04:58 浏览: 46
要在 HttpClient 中设置 TLS v1.2,您可以使用以下代码示例:
```java
import java.security.KeyManagementException;import java.security.NoSuchAlgorithmException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLParameters;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.impl.client.HttpClients;
public class HttpClientExample {
public static void main(String[] args) {
try {
SSLContext sslContext = SSLContextBuilder.create()
.setProtocol("TLSv1.2")
.build();
SSLParameters sslParameters = new SSLParameters();
sslParameters.setProtocols(new String[]{"TLSv1.2"});
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(5000)
.setConnectTimeout(5000)
.build();
HttpClient httpClient = HttpClients.custom()
.setSSLContext(sslContext)
.setDefaultSSLParameters(sslParameters)
.setDefaultRequestConfig(requestConfig)
.build();
// 在此处使用 httpClient 发起请求
} catch (NoSuchAlgorithmException | KeyManagementException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们首先使用 `SSLContextBuilder` 创建一个 `SSLContext` 对象,并设置协议为 "TLSv1.2"。然后,我们创建一个 `SSLParameters` 对象,并将协议设置为 "TLSv1.2"。接下来,我们使用 `RequestConfig` 来设置连接和套接字超时时间。最后,我们使用 `HttpClients.custom()` 创建自定义的 HttpClient,并设置 SSLContext、SSLParameters 和 RequestConfig。您可以在 `httpClient` 上执行您所需的请求操作。
请注意,以上示例使用的是 Apache HttpClient 4.x 版本。如果您正在使用其他版本的 HttpClient,可能需要进行适当的调整。