Java 傳送https 的post請求方法
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.security.GeneralSecurityException;
- import java.security.KeyStore;
-
import javax.net.ssl.HostnameVerifier;
- import javax.net.ssl.HttpsURLConnection;
- import javax.net.ssl.KeyManagerFactory;
- import javax.net.ssl.SSLContext;
- import javax.net.ssl.TrustManagerFactory;
- publicclass HttpsPost {
- /**
- * 獲得KeyStore.
- * @param keyStorePath
- * 金鑰庫路徑
-
* @param password
- * 密碼
- * @return 金鑰庫
- * @throws Exception
- */
- publicstatic KeyStore getKeyStore(String password, String keyStorePath)
- throws Exception {
- // 例項化金鑰庫
- KeyStore ks = KeyStore.getInstance("JKS");
- // 獲得金鑰庫檔案流
-
FileInputStream is = new
- // 載入金鑰庫
- ks.load(is, password.toCharArray());
- // 關閉金鑰庫檔案流
- is.close();
- return ks;
- }
- /**
- * 獲得SSLSocketFactory.
- * @param password
- * 密碼
- * @param keyStorePath
- * 金鑰庫路徑
- * @param trustStorePath
- * 信任庫路徑
- * @return SSLSocketFactory
- * @throws Exception
- */
- publicstatic SSLContext getSSLContext(String password,
- String keyStorePath, String trustStorePath) throws Exception {
- // 例項化金鑰庫
- KeyManagerFactory keyManagerFactory = KeyManagerFactory
- .getInstance(KeyManagerFactory.getDefaultAlgorithm());
- // 獲得金鑰庫
- KeyStore keyStore = getKeyStore(password, keyStorePath);
- // 初始化金鑰工廠
- keyManagerFactory.init(keyStore, password.toCharArray());
- // 例項化信任庫
- TrustManagerFactory trustManagerFactory = TrustManagerFactory
- .getInstance(TrustManagerFactory.getDefaultAlgorithm());
- // 獲得信任庫
- KeyStore trustStore = getKeyStore(password, trustStorePath);
- // 初始化信任庫
- trustManagerFactory.init(trustStore);
- // 例項化SSL上下文
- SSLContext ctx = SSLContext.getInstance("TLS");
- // 初始化SSL上下文
- ctx.init(keyManagerFactory.getKeyManagers(),
- trustManagerFactory.getTrustManagers(), null);
- // 獲得SSLSocketFactory
- return ctx;
- }
- /**
- * 初始化HttpsURLConnection.
- * @param password
- * 密碼
- * @param keyStorePath
- * 金鑰庫路徑
- * @param trustStorePath
- * 信任庫路徑
- * @throws Exception
- */
- publicstaticvoid initHttpsURLConnection(String password,
- String keyStorePath, String trustStorePath) throws Exception {
- // 宣告SSL上下文
- SSLContext sslContext = null;
- // 例項化主機名驗證介面
- HostnameVerifier hnv = new MyHostnameVerifier();
- try {
- sslContext = getSSLContext(password, keyStorePath, trustStorePath);
- } catch (GeneralSecurityException e) {
- e.printStackTrace();
- }
- if (sslContext != null) {
- HttpsURLConnection.setDefaultSSLSocketFactory(sslContext
- .getSocketFactory());
- }
- HttpsURLConnection.setDefaultHostnameVerifier(hnv);
- }
- /**
- * 傳送請求.
- * @param httpsUrl
- * 請求的地址
- * @param xmlStr
- * 請求的資料
- */
- publicstaticvoid post(String httpsUrl, String xmlStr) {
- HttpsURLConnection urlCon = null;
- try {
- urlCon = (HttpsURLConnection) (new URL(httpsUrl)).openConnection();
- urlCon.setDoInput(true);
- urlCon.setDoOutput(true);
- urlCon.setRequestMethod("POST");
- urlCon.setRequestProperty("Content-Length",
- String.valueOf(xmlStr.getBytes().length));
- urlCon.setUseCaches(false);
- //設定為gbk可以解決伺服器接收時讀取的資料中文亂碼問題
- urlCon.getOutputStream().write(xmlStr.getBytes("gbk"));
- urlCon.getOutputStream().flush();
- urlCon.getOutputStream().close();
-
BufferedReader in = new BufferedReader(
相關推薦
java傳送https post請求例項
用於進行Https請求的HttpClient SSLClient.Java import java.security.cert.CertificateException;
java傳送https post請求例項
用於進行Https請求的HttpClient SSLClient.java import java.security.cert.CertificateException; import java.
java 傳送get post請求
1、匯入jar <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId&
java傳送http post請求
import java.lang.reflect.Method; import java.net.HttpURLConnection; import java.util.ArrayList; import java.util.Iterator; import java.ut
java傳送https的請求
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.security.cert.CertificateException; i
Java 傳送https 的post請求方法
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamRead
關於java傳送https請求 提示java.security.cert.CertificateException: No name matching xxxx found的解決方法
1.這2天專案中需要呼叫外部介面,開始以為挺簡單的,後面使用HttpConnection傳送post請求出現了以下的錯誤資訊.通過觀察日誌中的錯誤資訊發現,應該是在建立HttpConnection的http連線的時候,出現了SSL安全認證的問題,通過查詢相關的資
java介面自動化3——POST請求方法封裝過程和測試
這個介面自動化測試框架到目前為止,我們已經完成了Get請求的封裝和必要的工具類的支援。接下來這篇,我來介紹如何完成POST請求的封裝過程。一般來說,在一個專案中,介面測試很多時候就是測試Get和POST方法,其他的請求方式的介面很少,佔的比重幾乎不計。所以,這個Java介面自動化測試框架的核心就是G
java向伺服器post請求時首部欄位content-length的計算方法
當java向伺服器post請求時,首部中有一個Content-length欄位,即請求主體中的位元組數。首部在主體的前面。不過,要寫入首部,需要知道主體的長度,而在寫首部的時候可能還不知道主體的長度。正常情況下,對於這個兩難的問題。 如圖所示 Java的
Java Https工具類,Java Https Post請求
Java Https工具類,Java Https Post請求 ================================ ©Copyright 蕃薯耀 2019-01-08 http://fanshuyao.iteye.com/ 一、使用jsoup進行
java 通過傳送json,post請求,返回json資料
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java
Java傳送HTTPS請求
get public static String doGetStrs(String accessTokenUrl){ JSONObject jsonObject = null; try { // 建
Java:HttpUtils :傳送get/post請求
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import jav
JAVA 傳送https請求
package com.linshang.mini.server.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamRe
Java介面自動化測試框架設計-4-POST請求方法封裝過程和測試
這個介面自動化測試框架到目前為止,我們已經完成了Get請求的封裝和必要的工具類的支援。接下來這篇,我來介紹如何完成POST請求的封裝過程。一般來說,在一個專案中,介面測試很多時候就是測試Get和POST方法,其他的請求方式的介面很少,佔的比重幾乎不計。所以,這個
Java發送Post請求
tostring lencod 發送post請求 length out int tab .get info //訪問準備 URL url = new URL("http:***"); //post參數 Map<St
Http協議中GET和POST請求方法的區別
出場 請求參數 底層 情況下 -type 過去 firefox url sym GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。 最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞
get和post請求方法的區別
外衣 log ati 技術 告訴 alt 怎麽 yahoo 鏈接 GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。 最直觀的區別就是GET把參數包含在URL中,POST通過request body傳遞參數。 你可能自
C# http常見的 Post請求方法體
一、帶data引數傳遞: string result = ""; Htt
Fiddler監聽Java應用程式http請求方法(Configure a Java Application to Use Fiddler)
Fiddler官網:http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureJavaApp Configure a Java Application to Use Fiddler 要配置Java應用程式以向Fiddle