Java HttpsURLConnectionの例
ここでは単純なJava HTTPSクライアントを使って、 `HttpsURLConnection`クラスを使ってHTTP GETリクエストを送信し、https URLのコンテンツと証明書の詳細を取得します。
P.Sこの例では興味があります:
HttpsURLConnectionを使ってWebサイトへのログインを自動化
HttpsClient.java
package com.mkyong.client; import java.net.MalformedURLException; import java.net.URL; import java.security.cert.Certificate; import java.io.** ; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLPeerUnverifiedException; public class HttpsClient{ public static void main(String[]args) { new HttpsClient().testIt(); } private void testIt(){ String https__url = "https://www.google.com/"; URL url; try { url = new URL(https__url); HttpsURLConnection con = (HttpsURLConnection)url.openConnection(); //dumpl all cert info print__https__cert(con); //dump all the content print__content(con); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void print__https__cert(HttpsURLConnection con){ if(con!=null){ try { System.out.println("Response Code : " + con.getResponseCode()); System.out.println("Cipher Suite : " + con.getCipherSuite()); System.out.println("\n"); Certificate[]certs = con.getServerCertificates(); for(Certificate cert : certs){ System.out.println("Cert Type : " + cert.getType()); System.out.println("Cert Hash Code : " + cert.hashCode()); System.out.println("Cert Public Key Algorithm : " + cert.getPublicKey().getAlgorithm()); System.out.println("Cert Public Key Format : " + cert.getPublicKey().getFormat()); System.out.println("\n"); } } catch (SSLPeerUnverifiedException e) { e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } } } private void print__content(HttpsURLConnection con){ if(con!=null){ try { System.out.println("** ** ** ** ** ** Content of the URL ** ** ** ** ** ** ** ** "); BufferedReader br = new BufferedReader( new InputStreamReader(con.getInputStream())); String input; while ((input = br.readLine()) != null){ System.out.println(input); } br.close(); } catch (IOException e) { e.printStackTrace(); } } } }
出力…
Response Code : 200 Cipher Suite : SSL__RSA__WITH__RC4__128__SHA Cert Type : X.509 Cert Hash Code : 7810131 Cert Public Key Algorithm : RSA Cert Public Key Format : X.509 Cert Type : X.509 Cert Hash Code : 6042770 Cert Public Key Algorithm : RSA Cert Public Key Format : X.509 ** ** ** ** ** ** Content of the URL ** ** ** ** ** ** ** ** <!doctype html> <html> <head> <meta http-equiv = "content-type" ......