亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

使用httpclient無需證書調用https的示例(java調用https)

2019-11-26 15:32:01
字體:
來源:轉載
供稿:網友

使用httpclient無需證書調用https的url地址,傳輸字節流。

復制代碼 代碼如下:

package com.paic.hmreport.metaQ;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.NoSuchAlgorithmException;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManagerFactory;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.entity.BufferedHttpEntity;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class HttpsClient {

 public static Log log = LogFactory.getLog(HttpsClient.class);

 /* for windows */

 /* for linux */
 /*
  * private static String CLIENT_CERT_PWD="123456"; private static String
  * TRUST_CERT_PATH=
  * "/wls/bis_emulator/apps/emulator/config/cert/BIS_FRONT_SERVER_STG_BY_ZXC.jks"
  * ; private static String TRUST_CERT_PWD="123456"; private static String
  * client_cert_path=
  * "/wls/bis_emulator/apps/emulator/config/cert/EXV_GROUP_EAI_B2B_ZUCHE_100.jks"
  * ;
  */

 /**
  * @param args
  * @throws IOException
  * @throws ClientProtocolException
  * @throws NoSuchAlgorithmException
  * @throws KeyManagementException
  */
 public static void main(String[] args) throws KeyManagementException,
   NoSuchAlgorithmException, ClientProtocolException, IOException {
  // sendMsgOfCert("https://10.25.32.13:8007", "hello world", "123456",
  // "kserver.jks", "123456", "tclient.jks");
  send(
    "https://127.0.0.1/hmreport/messageChannel.ac?sign=TEZrSHZJdDNrRFNIb0M0QnJrc3VIdDBJWDRYTTVXZGJYZHlLUkpxQlp6anQyYUJITEpSVWQzOWh4b0RvOW96TGVvN2ZhWEJ3SkZvN0JIZVhhOFRuaWZLY3VwbDExSjg2cjZFMFFvNHV4YktJd3E0T2RvTmVhQzV6NVhNTzJLN1NaNWpoUUhTVTR0NTNEdWFOVHpuZjh1ajA0VUhqaFBWRTJvM0s2dnEyTFVnPQ==",
    "Helloworld!");
 }

 public static String sendMsgOfCert(String urlString, String requestData,
   String CLIENT_CERT_PWD, String CLIENT_CERT_PATH,
   String TRUST_CERT_PWD, String TRUST_CERT_PATH) {
  StringBuffer sb = null;
  try {

   log.info("開始初始化https客戶端!");
   SSLContext sslContext = SSLContext.getInstance("SSL");

   KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
   TrustManagerFactory tmf = TrustManagerFactory
     .getInstance("SunX509");

   KeyStore ks = KeyStore.getInstance("JKS");
   ks.load(ClassLoader.getSystemResourceAsStream(CLIENT_CERT_PATH),
     CLIENT_CERT_PWD.toCharArray());
   kmf.init(ks, CLIENT_CERT_PWD.toCharArray());

   KeyStore tks = KeyStore.getInstance("JKS");
   tks.load(ClassLoader.getSystemResourceAsStream(TRUST_CERT_PATH),
     TRUST_CERT_PWD.toCharArray());

   tmf.init(tks);
   sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

   HostnameVerifier hostnameVerifier = new HostnameVerifier() {
    public boolean verify(String arg0, SSLSession arg1) {
     return true;
    }
   };
   HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);

   // URL url = new URL("https://172.40.1.83:8007");
   URL url = new URL(urlString);
   HttpsURLConnection urlCon = (HttpsURLConnection) url
     .openConnection();
   urlCon.setDoOutput(true);
   urlCon.setDoInput(true);
   urlCon.setRequestMethod("POST");
   urlCon.setRequestProperty("Content-type",
     "text/xml;charset=GB18030");
   urlCon.setSSLSocketFactory(sslContext.getSocketFactory());

   OutputStream os = urlCon.getOutputStream();
   InputStream fis = new ByteArrayInputStream(requestData
     .getBytes("GB18030"));
   BufferedInputStream bis = new BufferedInputStream(fis);
   byte[] bytes = new byte[1024];
   int len = -1;
   while ((len = bis.read(bytes)) != -1) {
    os.write(bytes, 0, len);
   }
   os.flush();
   bis.close();
   fis.close();
   os.close();

   InputStream is = urlCon.getInputStream();
   BufferedReader br = new BufferedReader(new InputStreamReader(is,
     "GB18030"));
   // DataInputStream indata = new DataInputStream(is);
   // String ret = "";
   // String str_return = "";
   // while (ret != null) {
   // ret = indata.readLine();
   // if (ret != null && !ret.trim().equals("")) {
   // str_return = str_return
   // + new String(ret.getBytes("ISO-8859-1"), "GBK");
   // }
   // }
   // System.out.println("str_return:" + str_return);
   // System.out.println("br.readLine():"+new
   // String(br.readLine().getBytes("GBK"), "GBK"));
   sb = new StringBuffer();
   String line;
   while ((line = br.readLine()) != null) {
    sb.append(line);
   }
   System.out.println("sb:" + sb);

   br.close();
   is.close();
   urlCon.disconnect();
  } catch (Exception e) {
   e.fillInStackTrace();
   log.info("客戶端調用失?。? + e.getMessage());
   throw new RuntimeException("https調用失??!");
  }
  return null;
 }

 public static void send(String requsetString, String requestData)
   throws NoSuchAlgorithmException, KeyManagementException,
   ClientProtocolException, IOException {
  // First create a trust manager that won't care.
  X509TrustManager trustManager = new X509TrustManager() {
   public void checkClientTrusted(X509Certificate[] chain,
     String authType) throws CertificateException {
    // Don't do anything.
   }

   public void checkServerTrusted(X509Certificate[] chain,
     String authType) throws CertificateException {
    // Don't do anything.
   }

   public X509Certificate[] getAcceptedIssuers() {
    // Don't do anything.
    return null;
   }

  };
  // Now put the trust manager into an SSLContext.
  SSLContext sslcontext = SSLContext.getInstance("SSL");
  sslcontext.init(null, new TrustManager[] { trustManager }, null);

  // Use the above SSLContext to create your socket factory
  // (I found trying to extend the factory a bit difficult due to a
  // call to createSocket with no arguments, a method which doesn't
  // exist anywhere I can find, but hey-ho).
  SSLSocketFactory sf = new SSLSocketFactory(sslcontext);
  sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

  DefaultHttpClient httpclient = new DefaultHttpClient();
  httpclient.getConnectionManager().getSchemeRegistry().register(
    new Scheme("https", sf, 443));

  // String requset = "https://180.168.35.140/api/vm.list";
  HttpPost httpPost = new HttpPost(requsetString);
  String result = "";
  // Execute HTTP request
  httpPost.setHeader("Authorization", "basic "
    + "dGNsb3VkYWRtaW46dGNsb3VkMTIz");
  httpPost.setHeader("Content-type", "application/xml");

  StringEntity reqEntity;

  // 將請求參數封裝成HttpEntity
  reqEntity = new StringEntity(requestData);
  BufferedHttpEntity bhe = new BufferedHttpEntity(reqEntity);
  httpPost.setEntity(bhe);
  HttpResponse response = httpclient.execute(httpPost);
  HttpEntity resEntity = response.getEntity();
  InputStreamReader reader = new InputStreamReader(resEntity.getContent());

  char[] buff = new char[1024];
  int length = 0;
  while ((length = reader.read(buff)) != -1) {
   result += new String(buff, 0, length);
  }
  httpclient.getConnectionManager().shutdown();

  System.out.println(">>>:" + result);
 }

 public static void test() {
  String words = "hello";
  try {

   FileOutputStream out = new FileOutputStream("D:/file.txt");
   out.write(words.getBytes());
   out.flush();
   out.close();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品精品一区二区三区午夜版| 日韩亚洲第一页| 97国产一区二区精品久久呦| www.日韩欧美| 欧美超级乱淫片喷水| 亚洲一区www| 久久久精品一区二区三区| xxx成人少妇69| 欧美乱人伦中文字幕在线| 麻豆精品精华液| 亚洲少妇中文在线| 亚洲国产欧美日韩精品| 亚洲国产精品人人爽夜夜爽| 91成人在线观看国产| 欧美日韩在线视频观看| 欧美www在线| 国产亚洲成av人片在线观看桃| 精品香蕉在线观看视频一| 这里只有精品在线播放| 精品国产91乱高清在线观看| 日韩免费av在线| 欧美日韩亚洲精品一区二区三区| 欧美性猛交丰臀xxxxx网站| 亚洲欧美色婷婷| 久久久国产视频| 国产一区二区三区三区在线观看| 国产精品一区久久久| 欧美在线观看网址综合| 日本精品久久久久影院| 色先锋久久影院av| 麻豆一区二区在线观看| 热久久99这里有精品| 欧美日韩国产123| 欧美最猛性xxxxx亚洲精品| 欧美日韩成人精品| 亚洲欧洲第一视频| 7777免费精品视频| 国产精自产拍久久久久久蜜| 伦伦影院午夜日韩欧美限制| 理论片在线不卡免费观看| 日韩影视在线观看| 欧美日本啪啪无遮挡网站| 国产亚洲精品久久久久动| 欧美日韩国产精品| 亚洲天堂男人天堂| 国产欧美va欧美va香蕉在| 国产精品久久久久久中文字| 91精品久久久久久久久青青| 国产美女高潮久久白浆| 欧美电影电视剧在线观看| 91精品国产综合久久久久久久久| 日韩欧美高清在线视频| 亚洲人精品午夜在线观看| 91青草视频久久| 国产精品色午夜在线观看| 91人成网站www| 久久久噜久噜久久综合| 久久99精品久久久久久青青91| 久久天天躁狠狠躁夜夜爽蜜月| 91美女福利视频高清| 欧美成人国产va精品日本一级| 久久久亚洲福利精品午夜| 性日韩欧美在线视频| 欧美性猛交xxxx免费看| 国产精品极品在线| 欧美精品video| 国产成人久久久精品一区| 91免费观看网站| 黄色一区二区三区| 欧美另类暴力丝袜| 亚洲精品永久免费精品| 在线观看日韩视频| 午夜精品一区二区三区在线视频| 在线播放国产一区中文字幕剧情欧美| 国产精品爽爽爽| 欧美国产日韩一区二区三区| 国产精品高潮视频| 91av在线看| 91日本在线观看| 久久成人在线视频| 国产精品久久久久久影视| 欧美性猛交99久久久久99按摩| 欧美一级高清免费| 国产欧美精品xxxx另类| 5566日本婷婷色中文字幕97| 国产精品日韩欧美| 98精品国产高清在线xxxx天堂| 538国产精品一区二区免费视频| 久久国产精品视频| 久久精品国产96久久久香蕉| 亚洲综合一区二区不卡| 亚洲免费小视频| 亚洲欧洲在线播放| 国产成人久久久| 欧美日韩黄色大片| 亚洲综合中文字幕在线观看| 亚洲一区二区久久久| 97色在线观看免费视频| 久久久久久久成人| 亚洲最新av网址| 久久精品国产久精国产一老狼| 日韩国产中文字幕| 国产成人精品日本亚洲| 91av在线视频观看| 欧美日韩国产丝袜美女| 91免费视频网站| 日韩一区二区精品视频| 97在线观看免费| 亚洲精品一区av在线播放| 亚洲精品国产精品国产自| 91精品国产自产在线观看永久| 亚洲精品网站在线播放gif| 日韩av男人的天堂| 午夜剧场成人观在线视频免费观看| 国产一区二区三区高清在线观看| 欧美日韩中文在线观看| 日韩国产欧美精品在线| 亚洲永久在线观看| 亚洲国产精品99久久| 色偷偷888欧美精品久久久| 久久精品这里热有精品| 欧美精品久久久久久久| 中文字幕成人精品久久不卡| 日韩免费av片在线观看| 色妞色视频一区二区三区四区| 亚洲久久久久久久久久久| 欧美自拍视频在线| 日本久久久a级免费| 亚洲激情电影中文字幕| 丝袜亚洲欧美日韩综合| 日韩中文字幕在线观看| 高清欧美性猛交xxxx黑人猛交| 亚洲日本欧美日韩高观看| 按摩亚洲人久久| 91高清免费视频| 在线精品国产欧美| 超在线视频97| 国产日韩欧美日韩| 欧美大片va欧美在线播放| 成人中心免费视频| 高清欧美性猛交xxxx| 亚洲无限乱码一二三四麻| 成人www视频在线观看| 青青精品视频播放| 日韩精品视频观看| 日本免费一区二区三区视频观看| 中文字幕一精品亚洲无线一区| 欧美性猛交xxxx乱大交蜜桃| 成人黄色免费在线观看| 国产成人精品日本亚洲专区61| 日韩在线播放一区| 日韩精品视频中文在线观看| 欧美午夜精品伦理| 国产成人精品视频在线观看| 亚洲女人天堂色在线7777| 91精品久久久久久久久不口人| 国产午夜精品美女视频明星a级| 日韩视频在线一区| 亚洲精品网站在线播放gif| 国语自产精品视频在线看一大j8| 尤物精品国产第一福利三区| 亚洲欧美日韩综合| 国产精品偷伦视频免费观看国产| 91精品久久久久久久久久久久久|