HttpsURLConnection

来源:互联网 发布:javascript 最新版本 编辑:程序博客网 时间:2024/04/30 11:45
    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();              }          }            }  

 

0 0
原创粉丝点击