访问https

package cn.com.admaster.migsender.utils;

import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;

/**
 * Created by qeekey on 17/7/3.
 */
public class Test {
    public static HostnameVerifier hv = new HostnameVerifier() {
        public boolean verify(String urlHostName, SSLSession session) {
            System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
            return true;
}
    };

    private static void trustAllHttpsCertificates() throws Exception {
        javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
javax.net.ssl.TrustManager tm = new miTM();
trustAllCerts[0] = tm;
javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext
                .getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc
                .getSocketFactory());
}

    static class miTM implements javax.net.ssl.TrustManager,
javax.net.ssl.X509TrustManager {
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
}

        public boolean isServerTrusted(
                java.security.cert.X509Certificate[] certs) {
            return true;
}

        public boolean isClientTrusted(
                java.security.cert.X509Certificate[] certs) {
            return true;
}

        public void checkServerTrusted(
                java.security.cert.X509Certificate[] certs, String authType)
                throws java.security.cert.CertificateException {
            return;
}

        public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, String authType)
                throws java.security.cert.CertificateException {
            return;
}
    }
    public static void main(String[] args) throws Exception {
        URL reqURL = new URL(
                "https://www.mydata.com/api_v1/medias.json"); // 创建URL对象

Test t = new Test();

t.trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);

HttpsURLConnection httpsConn = (HttpsURLConnection) reqURL
                .openConnection();

/*
       * 下面这段代码实现向Web页面发送数据,实现与网页的交互访问 httpsConn.setDoOutput(true);
       * OutputStreamWriter out = new
       * OutputStreamWriter(huc.getOutputStream(), "8859_1"); out.write( "……"
       * ); out.flush(); out.close();
       */

        // 取得该连接的输入流,以读取响应内容
InputStreamReader insr = new InputStreamReader(
                httpsConn.getInputStream());

// 读取服务器的响应内容并显示
int respInt = insr.read();
        while (respInt != -1) {
            System.out.print((char) respInt);
respInt = insr.read();
}

    }
}

猜你喜欢

转载自fireinwind.iteye.com/blog/2382691