现在的位置: 首页 > 综合 > 正文

调用javax.net.ssl包去取https的页面内容

2013年08月14日 ⁄ 综合 ⁄ 共 1814字 ⁄ 字号 评论关闭
假如某个页面是https的话,可以去获得其内容和HTTPS的验证信息:

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 {

/**

* @param args

*/

public static void main(String[] args)

   {

        new HttpsClient().testIt();

   }

   private void testIt(){

      String https_url = "https://www.aegpromotion.com/JackyGWIC2011/sc/terms.asp";

      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();

}

       }

   }

抱歉!评论已关闭.