java屏蔽https验证

当需要访问https网址,同时该网站证书又不受信的情况下的解决办法

手动创建一个通过所有https的httpclient

package com.ttd.video.monarch.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;

@SuppressWarnings("deprecation")
public class SSLClient extends DefaultHttpClient {
    public SSLClient() 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));
    }
}
  • 在需要跳过验证https的地方使用该SSLClient
HttpClient httpClient = new SSLClient();
HttpResponse response = httpClient.execute(httpPost);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != 200) {
  httpPost.abort();
throw new RuntimeException("HttpClient,error status code :" + statusCode);
}
HttpEntity entity = response.getEntity();
String result = null;
if (entity != null) {
  result = EntityUtils.toString(entity, "utf-8");
}
EntityUtils.consume(entity);
httpClient.getConnectionManager().shutdown();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2015.12.2 00:41悟 其实我一直很担心!担心我的思想跑得太快!快过了我前进的步伐。 一直以来我认为我在...
    说话的人阅读 266评论 0 0
  • 一夜又未眠,辗转不知源。 欲把酒到明,月下仅一魂。 与花酌朝露,叶冷人未觉。 提笔寄腹言,何处与君前? 有遗相知恨...
    野撒阅读 136评论 0 0
  • 封闭内心的一个人是孤独的,因为他只能自己面对所有的问题,依恋是幸福的,会让我们走出阴霾,打开自己,遵从内心。
    姜杨Ada阅读 294评论 0 0