看了好多帖子都說是把url中的https改為http。
但是對方說提供的服務是https。
有什么解決方法嗎?
uj5u.com熱心網友回復:
1. 讓對方提供證書;2. 配置 發送https請求時 忽略證書;
uj5u.com熱心網友回復:
有可能提供的服務用的不是https埠https://blog.csdn.net/dtlscsl/article/details/50462721
uj5u.com熱心網友回復:
你使用什么版本的jdk和httpclient模塊?uj5u.com熱心網友回復:
public class SkipSslVerificationHttpRequestFactory extends SimpleClientHttpRequestFactory {
@Override
protected void prepareConnection(HttpURLConnection connection, String httpMethod)
throws IOException {
if (connection instanceof HttpsURLConnection) {
prepareHttpsConnection((HttpsURLConnection) connection);
}
super.prepareConnection(connection, httpMethod);
}
private void prepareHttpsConnection(HttpsURLConnection connection) {
connection.setHostnameVerifier(new SkipHostnameVerifier());
try {
connection.setSSLSocketFactory(createSslSocketFactory());
} catch (Exception ex) {
// Ignore
}
}
private SSLSocketFactory createSslSocketFactory() throws Exception {
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, new TrustManager[]{new SkipX509TrustManager()},
new SecureRandom());
return context.getSocketFactory();
}
private class SkipHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
}
private static class SkipX509TrustManager implements X509TrustManager {
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
}
}@Bean
public RestTemplate restTemplate() {
SkipSslVerificationHttpRequestFactory factory = new SkipSslVerificationHttpRequestFactory();
factory.setReadTimeout(10000);
factory.setConnectTimeout(15000);
return new RestTemplate(factory);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12743.html
標籤:Java SE
上一篇:string index out of range!我這段代碼看了半天也沒有越界啊……求大佬講解!
下一篇:想問問如何優化查詢效率
