博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpsURLConnection
阅读量:7101 次
发布时间:2019-06-28

本文共 3734 字,大约阅读时间需要 12 分钟。

hot3.png

HttpsURLConnection 博客分类: java
import java.io.FileInputStream;      import java.io.InputStreamReader;      import java.net.InetSocketAddress;      import java.net.Proxy;      import java.net.SocketAddress;      import java.net.URL;      import java.security.KeyStore;      import java.security.SecureRandom;      import javax.net.ssl.HttpsURLConnection;      import javax.net.ssl.KeyManager;      import javax.net.ssl.KeyManagerFactory;      import javax.net.ssl.SSLContext;      import javax.net.ssl.TrustManager;            import com.ebiz.framework.BaseConst;            public class HttpUtil {                public void send() throws Exception {                    KeyStore ks = initKeyStore("你的证书密码", "你的证书地址");              KeyManagerFactory keyManagerFactory = initKeyManagerFactory(ks, "你的证书密码");                SSLContext ssf = initSSLContext(keyManagerFactory.getKeyManagers(), null, new SecureRandom());              URL url = new URL("你的https地址");              HttpsURLConnection httpsConn = (HttpsURLConnection) url.openConnection();              httpsConn.setSSLSocketFactory(ssf.getSocketFactory());              httpsConn.setRequestMethod("POST");               httpsConn.setDoOutput(true);               httpsConn.setDoInput(true);              InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream());              StringBuffer result = new StringBuffer();              // 读取服务器的响应内容并显示              int respInt = insr.read();              while (respInt != -1) {                  result.append((char) respInt);                  respInt = insr.read();              }              System.out.println(result.toString());          }                      /**          * 初始化SSLContext          *           * @param keyManager          *            密钥管理器          * @param trustManager          *            信任管理器,判断返回请求          * @param secureRandom          *            随机数          * @return          * @throws Exception          */          public static SSLContext initSSLContext(KeyManager[] keyManager, TrustManager[] trustManager, SecureRandom secureRandom) throws Exception {              SSLContext sslContext = SSLContext.getInstance("SSL");              sslContext.init(keyManager, trustManager, secureRandom);              return sslContext;          }                /**          * 初始化密钥管理器          *           * @param ks          * @param keyPwd          * @return          * @throws Exception          */          public static KeyManagerFactory initKeyManagerFactory(KeyStore ks, String keyPwd) throws Exception {              KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());// Sunx509              keyManagerFactory.init(ks, keyPwd.toCharArray());              return keyManagerFactory;          }                /**          * 初始化KeyStore.          *           * @param keyStorePath          *            密钥库路径          * @param password          *            密码          * @return 密钥库          * @throws Exception          */          public static KeyStore initKeyStore(String password, String keyStorePath) throws Exception {              // 实例化密钥库 JKS              KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());              FileInputStream is = new FileInputStream(keyStorePath);              ks.load(is, password.toCharArray());              is.close();              return ks;          }                public static void main(String[] args) {              HttpUtil t = new HttpUtil ();              try {                  t.send();              } catch (Exception e) {                  e.printStackTrace();              }          }            }

 

转载于:https://my.oschina.net/xiaominmin/blog/1597868

你可能感兴趣的文章
linux chkconfig and umask
查看>>
公司那些事-薪酬
查看>>
Oracle查询被锁的表及进程的方法
查看>>
树莓派2+无线网卡==伪热点+钓鱼网站
查看>>
在Linux中安装Oracle(安装总结)
查看>>
java 面试基础题 引用
查看>>
C#中yield用法
查看>>
SharePoint 2013中的默认爬网文件扩展名和分析文件类型
查看>>
Android菜鸟的成长笔记(8)——Intent与Intent Filter(上)
查看>>
使用 Subversion 修改文件名称的大小写的方法
查看>>
JAVA 显示图片的简单源码 分类: Java Game ...
查看>>
Vuex 的使用
查看>>
PHP curl Post请求和Get请求~
查看>>
【小梅哥SOPC学习笔记】NIOS II处理器运行UC/OS II
查看>>
python socket编程
查看>>
WebApp开发之--"rem"单位(转)
查看>>
TOPCODER->Practice Room->SRAM 144 DIV 1 (550)
查看>>
Code Formatter
查看>>
svn工具安装下载Tomcat源码以及导入eclipse
查看>>
javascript简介
查看>>