`

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

阅读更多
假如某个页面是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();
}

       }

   }
1
0
分享到:
评论

相关推荐

    java.security.cert.CertificateException: No subject alternative DNS name matching XXX found解决方案

    由于第三方服务商更新服务器证书,导致向其...public class TrustAllTrustManager implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager { @Override public java.security.cert.X509Certificate

    [Java参考文档].JDK_API 1.6

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。 ...

    AzureGraph:与Microsoft Graph API的简单接口。 通过https提交问题和PR

    当前,此程序包旨在仅向Azure Active Directory部分提供R接口,以支持R和Azure的互操作性:用户,组,注册的应用程序和服务主体。 与AzureRMR一样,它可能会扩展为涵盖其他服务。 该软件包的主要仓库位于 ; 请在...

    JAVA_API1.6文档(中文)

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。...

    java邮件引擎调用

    "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465"); Session session = Session.getDefaultInstance(props, new javax.mail....

    java api最新7.0

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。 ...

    Java 1.6 API 中文 New

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。 ...

    [Java参考文档]

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。...

    JavaAPI中文chm文档 part2

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。...

    JDK_1_6 API

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。 ...

    JavaAPI1.6中文chm文档 part1

    javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM Print Service API 提供了主要类和接口。 javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。...

    TLSTelemetryServer:用于收集和显示 TLS 连接指标的服务器

    客户端创建一个 TDObject,该对象使用从 Tomcat 在 TLS 握手期间创建的 javax.net.ssl.SSLSession 对象中提取的数据进行初始化。 TLSTelemetryServer 服务器应用程序作为标准 Java Web 应用程序实现,具有 1 个 ...

    google-search-results-java:谷歌搜索结果 JAVA API 通过 SerpApi

    谷歌搜索结果 JAVA API ... SSLv3 有问题,导致 Java 引发此异常:javax.net.ssl.SSLHandshakeException 用于开发: Gradle 6.7+ ( ) 快速开始 在 Java 中开始这个项目。 我们提供了一个完整的工作示例。

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    超级有影响力霸气的Java面试题大全文档

     forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。...

Global site tag (gtag.js) - Google Analytics