httpclient https忽略证书直接请求

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");


阅读更多
文章标签: httpclient https java
个人分类: web开发之项目实战
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭