HttpsURLConnection

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

public class Test {
    public static void main(String[] args) {
        HttpsURLConnection conn = null;
        try {
            URL url = new URL("https://home.cnblogs.com/u/mjn0");
            conn = (HttpsURLConnection) url.openConnection();
            SSLContext context = SSLContext.getInstance("TLS");

            X509TrustManager xtm = new X509TrustManager() {
                @Override
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }

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

                @Override
                public void checkClientTrusted(X509Certificate[] chain, String authType)
                        throws CertificateException {
                }
            };

            KeyManager[] km = null;
            TrustManager[] tm = new TrustManager[] { xtm };
            SecureRandom random = null;

            context.init(km, tm, random);
            SSLSocketFactory sf = context.getSocketFactory();
            conn.setSSLSocketFactory(sf);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        }

        try (InputStream is = conn.getInputStream();
                InputStreamReader isr = new InputStreamReader(is, "utf-8");
                BufferedReader br = new BufferedReader(isr);) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
时间: 2024-07-29 15:20:44

HttpsURLConnection的相关文章

Android HttpsUrlConnection eofexception --> java.io.EOFException

05-15 17:32:51.624: W/System.err(9851): java.io.EOFException 05-15 17:32:51.694: W/System.err(9851): at libcore.io.Streams.readAsciiLine(Streams.java:203) 05-15 17:32:51.694: W/System.err(9851): at libcore.net.http.HttpEngine.readResponseHeaders(Http

我的Android进阶之旅------>Android关于HttpsURLConnection一个忽略Https证书是否正确的Https请求工具类

下面是一个Android HttpsURLConnection忽略Https证书是否正确的Https请求工具类,不需要验证服务器端证书是否正确 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEn

java中的HttpsURLConnection抽象类

一.概述 该类位于javax.net.ssl包下,类声明:public abstract class HttpsURLConnection extends HttpURLConnection 类层次结构: java.lang.Object java.net.URLConnection java.net.HttpURLConnection javax.net.ssl.HttpsURLConnection HttpsURLConnection 扩展 HttpURLConnection,支持各种特定于

J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09日 ⁄ 综合 ⁄ 共 1353字 ⁄ 字号 小 中 大 ⁄ 评论关闭 做集成工作时使用到了第三方公司提供的接口JAR包,在本地TOMCAT测试通过后部署到WEBLOGIC上.抛出了weblogic.net.http.SOAPHttpsURLConnection cannot be cast to j

https请求 HttpsURLConnection

Https访问的相关知识中,主要分为单项验证和双向验证,双向验证在单项验证的基础上构建而成 关于单项验证,如果要细分的话,分为证书验证和普通验证(忽略验证),因为这项验证针对客户端,所以客户端有能力控制是否需要验证 忽略验证的方式 主要如下继承X509TrustManager和HostnameVerifier public class SSLTrustManager implements javax.net.ssl.TrustManager,             javax.net.ssl.

Java网络连接之HttpURLConnection、HttpsURLConnection

工具类包含两个方法: http请求.https请求 直接看代码: package com.jtools; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.HttpURLConnection; import

关于JAVA发送Https请求(HttpsURLConnection和HttpURLConnection)

关于JAVA发送Https请求(HttpsURLConnection和HttpURLConnection) [转] https协议对于开发者而言其实只是多了一步证书验证的过程.这个证书正常情况下被jdk/jre/security/cacerts所管理.里面证书包含两种情况: 1.机构所颁发的被认证的证书,这种证书的网站在浏览器访问时https头显示为绿色如百度 2.个人所设定的证书,这种证书的网站在浏览器里https头显示为红色×,且需要点击信任该网站才能继续访问.而点击信任这一步的操作就是我们

HttpsURLConnection 利用keepAlive特性进行优化一例

最近项目中,遇到一个报错: java.lang.OutOfMemoryError: unable to create new native thread 报错的场景是:一个消息的群发,群里总共有50多个人,一群发 tomcat 就崩溃了,查看日志报上面的错误. 这个错误的基本情况是,没有内存来创建新的本地线程了,因为java中创建的线程,最终是要对应到本地线程.基本的解决方法,是减小:xss 的数值,页就是减小 java 线程stack 占用内存的大小,一般可以改小到 128k. 关于这个错误网

Java企业微信开发_08_JSSDK多图上传

一.本节要点 1.1可信域名 所有的JS接口只能在企业微信应用的可信域名下调用(包括子域名),可在企业微信的管理后台“我的应用”里设置应用可信域名.这个域名必须要通过ICP备案,不然jssdk会配置失败 1.2JS-SDK使用权限签名算法 1.2.1 签名生成规则如下: (1)参与签名的字段包括: noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) . (2)对所有待签名参数按照字段名的ASCII