1. 程式人生 > >httpClient4.1傳送https報文請求,帶證書,簽名

httpClient4.1傳送https報文請求,帶證書,簽名

這個方法時我測試了目前網上的commons-httpclient所提供的方法,根據HTTP請求改造的,那個測試沒有通過,這個是完全根據官方最新版的httpclinet4.1的英文文件以及example來做的,比較靠譜,當前前提是你的證書已經拆分好,這個可以找到相關的很多資料,不做贅述。傳送程式碼如下

  1. org.apache.http.client.HttpClient hc = new org.apache.http.impl.client.DefaultHttpClient();  
  2.              List <NameValuePair> nvps = new ArrayList <NameValuePair>();  
  3.             nvps.add(new BasicNameValuePair("uerName", yourNameValue);  
  4.             nvps.add(new BasicNameValuePair("userCode", yourUserCodeValue);  
  5.             //請根據實際修改上送包xml資料,POST請求沒有長度限制,get請求太長會報錯,根據實際情況,一般的資料傳送會要求進行簽名、BASE64編碼或者壓縮等機制進行傳輸
  6.             nvps.add(new BasicNameValuePair("reqData",getrevFromBASE64(body.getBytes(
    "GBK"))));    
  7.             UrlEncodedFormEntity   urlEncodedFormEntity = new UrlEncodedFormEntity(nvps,"GBK");  
  8.             String url = "https://"+yourConnectIp+":"+yourConnectPort;  
  9.             //載入證書
  10.             java.security.KeyStore trustStore = java.security.KeyStore.getInstance(java.security.KeyStore.getDefaultType());  
  11.             //"123456"為製作證書時的密碼
  12.             trustStore.load(new FileInputStream(new File("你的證書位置")), "123456".toCharArray());  
  13.             org.apache.http.conn.ssl.SSLSocketFactory socketFactory = new org.apache.http.conn.ssl.SSLSocketFactory(trustStore);  
  14.             //不校驗域名
  15.             socketFactory.setHostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);  
  16.             //這個8446是和被訪問端約定的埠,一般為443
  17.             org.apache.http.conn.scheme.Scheme sch = new org.apache.http.conn.scheme.Scheme("https", socketFactory, 8446);  
  18.             hc.getConnectionManager().getSchemeRegistry().register(sch);  
  19.             org.apache.http.client.methods.HttpPost hr = new org.apache.http.client.methods.HttpPost(url);  
  20.             hr.setEntity(urlEncodedFormEntity);  
  21.             hr.setHeader("Content-Type""application/x-www-form-urlencoded");  
  22.             org.apache.http.HttpResponse hres = hc.execute(hr);  
  23.             org.apache.http.HttpEntity entity = hres.getEntity();  
  24.             re_code = hres.getStatusLine().statusCode;  
  25.             if (re_code == 200) {  
  26.             //your successCode here
  27.             String repMsg = org.apache.http.util.EntityUtils.toString(entity,"GBK");  
  28.             }else{  
  29.             //your failCode here
  30.             }  
  31.   最後,根據實際需要,解析返回報文,決定是否去關閉連線   

相關推薦

httpClient4.1傳送https報文請求證書簽名

這個方法時我測試了目前網上的commons-httpclient所提供的方法,根據HTTP請求改造的,那個測試沒有通過,這個是完全根據官方最新版的httpclinet4.1的英文文件以及example來做的,比較靠譜,當前前提是你的證書已經拆分好,這個可以找到相關的很多資

python用requests傳送https請求有安全驗證

python用requests傳送https的請求時,有安全驗證,將驗證設定為false 即可verify=False content = {‘login’: ‘1234567890’, ‘password’: ‘123456’} r=requests.post(‘url…login’,

分享一個郵件傳送的java例項(純文字附件多人抄送多人密送)

貼程式碼: 1 import javax.activation.DataHandler; 2 import javax.activation.FileDataSource; 3 import javax.mail.*; 4 import javax.mail.internet.*;

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.

C++使用curl庫 以位元組流方式 傳送 https同步請求

 //在資料頭設定  Content-Typeapplication/octet-stream 否則可能會預設因為有字元 & 造成無法正確傳輸; // 設定訊息頭 curl_slist *header = NULL; header = cur

java使用POST傳送soap報文請求webservice返回500錯誤解析

文章摘要: 本文使用JAX-WS2.2編譯webservice,並使用HttpUrlConnection的POST方式對wsdl傳送soap報文進行請求返回資料, 對錯誤Server returned HTTP response code: 500 的解決方法進行簡單分析。

java傳送https請求

import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.security.cert.CertificateException; i

bash編程練習選項添加或刪除用戶

tdi null ini stdin done base 一個 del 獲取 腳本練習題:   可以接受選項及參數,而後能獲取每一個選項,及選項的參數,並能根據選項及參數做出特定的操作; 比如:adminusers.sh -a|--add user .. -d|--del

kubernetes 集群安裝etcd集群證書

cert key mod 信息 ise ESS linux con efi install etcd 準備證書 https://www.kubernetes.org.cn/3096.html 在master1需要安裝CFSSL工具,這將會用來建立 TLS ce

公私鑰數字證書https

非對稱加密 結合 接收 很多 sha2 客戶端 完整 機構 驗證 1、密鑰對,在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。 2、公鑰,公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。 3、私鑰,

python 發郵件附件中文

    # !/usr/bin/python # -*- coding: UTF-8 -*- from email import encoders from email.mime.base import MIMEBase from email.mime.multipa

滑塊特效外掛rangeSlider刻度rangeSlider實現進度範圍選擇

先看效果,樣式還是可以的 實現也很簡單 @section Styles{   <link href="~/ion.rangeSlider-2.2.0/css/ion.rangeSlider.css" rel="stylesheet" /> 根據自己的愛好

Android 開發:繪製多條線快取觸控的圖表(基金圖表的實現)

對之前的幾篇文章裡的model進行補充 後期會把這個功能類,新增到這個框架裡 連結 Android開發框架,有興趣的可以下載下來看,這個框架會經常更新: public class BaseFundChartView extends View im

MUI-button(按鈕)圖示圖示可居左/居右

一般圖示包括首頁、搜尋、新增、刪除等,分別對應的類如下表所示: 圖示類,預設圖示居左 mui-icon mui-icon-home 首頁 mui-icon mui-icon-search 搜尋

RecyclerView多功能分割線橫豎分割線padding允許取消指定分割線

分割線可以畫到RecyllerView的item的padding裡,類似於android: clipPadding = “true” 效果。 繼承自ItemDecoration類,程式碼如下: import android.content.Contex

kubernetes 叢集安裝etcd叢集證書

install etcd 在master1需要安裝CFSSL工具,這將會用來建立 TLS certificates。 export CFSSL_URL="https://pkg.cfssl.org/R1.2" wget "${CFSSL_URL}/cfssl_linux-amd64" -O /usr/lo

低通高通濾波器的設計

這是之前用到的幾個簡單的濾波器的程式,濾波器的設計比較簡單。可以直接使用matlab裡的FDA,匯出濾波器係數即可。 再就是參考數字訊號處理課本里面三種濾波器設計的方法,由過渡帶和所選的窗函式推匯出濾波器階數,進一步根據firl和filter函式編寫即可。 下面給出三

簡易音樂播放器seekBar可滑動調節播放進度。

閒言少敘,進入正題,這個也不能稱之為播放器,只是播放 /res/raw 下的音樂檔案。 因為是初學者,所以遇到的問題比較多,很多都是不應該出現的問題,但是好在都解決了 我在程式碼中的註釋我覺得夠詳細的了,希望跟我一樣的初學者能少走一些彎路 遇到的問題:

好用的日曆外掛WdatePicker示例一看就會

先看一下示例圖片(見後面),只有一部分,沒截完,請見諒 簡單的程式碼呼叫,拿來就能用 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4