通用http、https访问工具类

 

通用http、https访问工具类

对于https的访问,需要信任服务器端的证书。

public class HttpHelper{
        public static HttpURLConnection getConnection(String urlStr) throws KeyManagementException, MalformedURLException, NoSuchAlgorithmException, IOException{
                HttpURLConnection conn = null;
                if (urlStr.toLowerCase().startsWith("https"))
                        conn = getHttpsConnection(urlStr);
                else
                        conn = getHttpConnection(urlStr);
                return conn;
        }
        private static HttpURLConnection getHttpConnection(String urlStr) throws MalformedURLException, IOException {
                URL url = new URL(urlStr);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                return conn;
        }
       
        private static HttpsURLConnection getHttpsConnection(String urlStr) throws MalformedURLException, IOException,NoSuchAlgorithmException, KeyManagementException {
                URL url = new URL(urlStr);
                HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
                conn.setHostnameVerifier(new IgnoreHostnameVerifier());
                TrustManager[] tm = { new IgnoreCertificationTrustManger() };
                SSLContext sslContext = SSLContext.getInstance("TLS");
                sslContext.init(null, tm, null);
                SSLSocketFactory ssf = sslContext.getSocketFactory();
                conn.setSSLSocketFactory(ssf);
                return conn;
        }
}

public class IgnoreCertificationTrustManger implements X509TrustManager {

        private X509Certificate[] certificates;

        public void checkClientTrusted(X509Certificate certificates[],
                        String authType) throws CertificateException {
                if (this.certificates == null) {
                        this.certificates = certificates;
                }

        }

        public void checkServerTrusted(X509Certificate[] ax509certificate, String s)
                        throws CertificateException {
                if (this.certificates == null) {
                        this.certificates = ax509certificate;
                }
        }

        public X509Certificate[] getAcceptedIssuers() {
                return null;
        }

}

public class IgnoreHostnameVerifier implements HostnameVerifier{

        public boolean verify(String arg0, SSLSession arg1) {
                return true;
        }

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值