`

调用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
分享到:
评论

相关推荐

    解决webMagic0.7.3 出现javax.net.ssl.SSLException: Received fatal alert: protocol_version的问题-附件资源

    解决webMagic0.7.3 出现javax.net.ssl.SSLException: Received fatal alert: protocol_version的问题-附件资源

    java 发送https 请求 证书

    3. **在Java代码中配置TrustStore**:在Java代码中,你需要设置`javax.net.ssl.trustStore`和`javax.net.ssl.trustStorePassword`系统属性,指向你的TrustStore文件和密码: ```java System.setProperty("javax...

    java 调用https webservice实例及axis包

    这通常涉及到`javax.net.ssl.HttpsURLConnection`类的设置,例如设置`SSLSocketFactory`,处理证书问题。 4. **调用Web Service**:使用生成的客户端代理类,通过其方法调用Web Service。注意,由于是HTTPS,所以在...

    kettle中调用restful接口时的SSL信任证书问题

    import javax.net.ssl.*; import java.security.cert.X509Certificate; public class SSLUtilities { public static void trustAllCertificates() throws Exception { TrustManager[] trustAllCerts = new ...

    Java 调用Restful API接口的几种方式(HTTPS)

    import javax.net.ssl.X509TrustManager; public class HTTPSClient { public static void main(String[] args) throws Exception { // 加载证书 KeyStore trustStore = KeyStore.getInstance(KeyStore....

    java_proxy_end

    在Java中,我们可以使用`javax.net.ssl.SSLContext`,`javax.net.ssl.SSLSocketFactory`和`javax.net.ssl.HostnameVerifier`等类来控制这些设置。 5. **Socket Programming**: 代理服务器通常基于TCP/IP套接字编程...

    [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一样,它可能会扩展为涵盖其他服务。 该软件包的主要仓库位于 ; 请在...

    TLS java简单实现

    在Java中实现TLS,主要通过`java.security.KeyStore`类来管理和加载证书和私钥,`javax.net.ssl.SSLContext`来创建SSL/TLS上下文,以及`SSLSocket`或`SSLServerSocket`来进行安全连接。`client_ks`和`server_ks`文件...

    javamail通过imap协议收取邮件(Exchange2007)

    如果需要安全连接,可以设置`mail.imap.socketFactory.class`为`javax.net.ssl.SSLSocketFactory`。 4. **获取Store和Folder**: 通过`Session`对象的`getStore()`方法获取`Store`实例,然后使用`Store.connect()`...

    java,HttpClient模拟上传,绕过SSL认证

    import javax.net.ssl.X509TrustManager; import java.security.cert.CertificateException; public class UnsafeSSLConfig { public static SSLContext createUnsafeSSLContext() throws Exception { SSLContext...

    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调用HTTPS

    2. **创建SSLContext对象**:Java的`javax.net.ssl.SSLContext`类是处理SSL/TLS协议的核心。我们需要实例化这个对象并配置信任的证书库。 3. **设置Socket工厂**:使用`SSLContext`创建`SSLSocketFactory`,然后将...

    JAVA工具类PKI公钥基础设施

    8. **KeyManager**:与TrustManager类似,`javax.net.ssl.KeyManager`接口及其子接口负责选择客户端的身份认证证书,用于SSL/TLS握手过程。 9. **SSLContext**:`javax.net.ssl.SSLContext`类是所有SSL/TLS操作的...

    webservice+https.zip

    在调用HTTPS Web Service时,可能会遇到SSL/TLS相关的异常,比如`javax.net.ssl.SSLHandshakeException`或`System.Net.WebException`。这些异常通常与证书问题、不兼容的加密套件或网络问题有关,需要根据具体的...

    java网络编程学习资料

    Java通过`java.net.HttpURLConnection`和`javax.net.ssl.HttpsURLConnection`类支持HTTP/HTTPS请求。开发者可以使用这些类来发送GET、POST请求,处理响应,实现网页抓取或API调用。 此外,文件上传和下载是网络编程...

    java开发https请求ssl不受信任问题解决方法

    Java 开发 HTTPS 请求 SSL 不受信任问题解决方法 在 Java 开发中,使用 HTTPS 请求时可能会遇到 SSL 不受信任的问题,这是因为 Java 的证书验证机制会检查目标服务器的证书是否合法,如果证书不合法或没有证书就会...

    jmeter学习概要

    javax.net.ssl.keyStorePassword= ``` - 其中 `<path_to_keystore_file>` 和 `<password_for_keystore>` 分别指定了 keystore 文件的路径和密码。 以上是对 JMeter 的基本介绍及其主要组件的功能说明,通过了解...

    Java Https请求,跳过证书,直接访问

    至于提到的"相关jar包全有",这可能指的是用于处理HTTPS请求和SSL连接的Java标准库(如`javax.net.ssl.*`)以及其他可能需要的第三方库,如Apache HttpClient。"TestHttp"可能是一个测试HTTP请求的Java类或文件,你...

Global site tag (gtag.js) - Google Analytics