httpclient https忽略证书直接请求

来源:互联网 发布:航天税金软件 编辑:程序博客网 时间:2024/05/22 06:31

httpclient请求https   忽略证书直接请求:

封装https忽略证书代码

package com.sunrise.web.utils;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;import org.apache.http.conn.ClientConnectionManager;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.impl.client.DefaultHttpClient;public class CertificateAuthorityHttpClientUtil extends DefaultHttpClient{    CertificateAuthorityHttpClientUtil() throws Exception{    super();    SSLContext ctx = SSLContext.getInstance("TLS");    X509TrustManager tm = new X509TrustManager(){        @Override         public void checkClientTrusted(X509Certificate[]  chain, String authType) throws CertificateException {        }        @Override        public void checkServerTrusted(X509Certificate[] chain,  String authType) throws CertificateException {        }        @Override             public X509Certificate[] getAcceptedIssuers() {            return null;        }        };    ctx.init(null, new  TrustManager[]{tm}, null);    SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);             ClientConnectionManager ccm = this.getConnectionManager();    SchemeRegistry sr = ccm.getSchemeRegistry();    sr.register(new Scheme("https", 443, ssf));    }   }

调用接口:

HttpClient httpclient = new CertificateAuthorityHttpClientUtil();String headOfficePath = properties.getProperty("headOfficePath");


0 0
原创粉丝点击