mirror of
https://github.com/201206030/novel.git
synced 2025-04-27 07:30:50 +00:00
小说爬虫请求忽略SSL证书
This commit is contained in:
parent
4077ab9666
commit
de2bb731b5
@ -1,22 +1,46 @@
|
|||||||
package com.java2nb.books.util;
|
package com.java2nb.books.util;
|
||||||
|
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
||||||
|
import org.apache.http.conn.ssl.TrustStrategy;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
||||||
import org.springframework.http.converter.HttpMessageConverter;
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import javax.net.ssl.SSLContext;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class RestTemplateUtil {
|
public class RestTemplateUtil {
|
||||||
|
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
public static RestTemplate getInstance(String charset) {
|
public static RestTemplate getInstance(String charset) {
|
||||||
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
|
TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
|
||||||
httpRequestFactory.setConnectionRequestTimeout(3000);
|
|
||||||
httpRequestFactory.setConnectTimeout(3000);
|
//忽略证书
|
||||||
httpRequestFactory.setReadTimeout(10000);
|
SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom()
|
||||||
RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
|
.loadTrustMaterial(null, acceptingTrustStrategy)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);
|
||||||
|
|
||||||
|
CloseableHttpClient httpClient = HttpClients.custom()
|
||||||
|
.setSSLSocketFactory(csf)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
HttpComponentsClientHttpRequestFactory requestFactory =
|
||||||
|
new HttpComponentsClientHttpRequestFactory();
|
||||||
|
|
||||||
|
requestFactory.setHttpClient(httpClient);
|
||||||
|
requestFactory.setConnectionRequestTimeout(3000);
|
||||||
|
requestFactory.setConnectTimeout(3000);
|
||||||
|
requestFactory.setReadTimeout(10000);
|
||||||
|
RestTemplate restTemplate = new RestTemplate(requestFactory);
|
||||||
List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters();
|
List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters();
|
||||||
for (HttpMessageConverter<?> httpMessageConverter : list) {
|
for (HttpMessageConverter<?> httpMessageConverter : list) {
|
||||||
if(httpMessageConverter instanceof StringHttpMessageConverter) {
|
if(httpMessageConverter instanceof StringHttpMessageConverter) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user