import com.alibaba.fastjson2.JSONObject;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.ssl.TrustStrategy;
import javax.net.ssl.SSLContext;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
/**
* Apache http.client HTTPS请求绕过SSL证书校验
*
* @module
* @author:lkl
* @date: 2024-03-23
*/
public class ApacheHttpsUtil {
/**
* 绕过SSL证书校验GET请求
* @param url
* @return:
* @Author: lkl
* @date:
*/
public static JSONObject doGet(String url) throws Exception {
// 创建一个信任所有证书的SSLContext
SSLContext sslContext = SSLContextBuilder.create()
.loadTrustMaterial(new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
return true; // 忽略所有证书验证
}
})
.build();
// 创建一个HttpClient实例,使用上述SSLContext
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLContext(sslContext)
.setSSLHostnameVerifier(new NoopHostnameVerifier()) // 忽略主机名验证
.build();
// 创建HttpGet请求
HttpGet httpGet = new HttpGet(url);
// 执行请求
String responseBody = httpClient.execute(httpGet, new BasicResponseHandler());
// 关闭HttpClient资源
httpClient.close();
return JSONObject.parseObject(responseBody);
}
}
Apache http.client HTTPS请求绕过SSL证书校验
最新推荐文章于 2025-03-27 14:44:47 发布