使用jsoup解析http/https協議網頁的代碼

碼頭工人 9年前發布 | 4K 次閱讀 Java jsoup

import java.net.MalformedURLException;
import java.net.URL;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Map;

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

import org.jsoup.Connection; import org.jsoup.helper.HttpConnection;

public class HTTPCommonUtil { public static void trustEveryone() { try { HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } });

        SSLContext context = SSLContext.getInstance("TLS");
        context.init(null, new X509TrustManager[] { new X509TrustManager() {
            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
            }

            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
            }

            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[0];
            }
        } }, new SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
    } catch (Exception e) {
        // e.printStackTrace();
    }
}

public static Object getHttpHeaders(URL url, int timeout) {
    try {
        trustEveryone();
        Connection conn = HttpConnection.connect(url);
        conn.timeout(timeout);
        conn.header("Accept-Encoding", "gzip,deflate,sdch");
        conn.header("Connection", "close");
        conn.get();
        Map<String, String> result = conn.response().headers();
        result.put("title", conn.response().parse().title());
        return result;

    } catch (Exception e) {
        //e.printStackTrace();
    }
    return null;
}

public static void main(String[] args) {
    try {
        URL url = new URL("https", "202.133.116.70", -1, "");
        System.out.println(getHttpHeaders(url, 10000));
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}

} </pre>

 本文由用戶 admin 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!