輕鬆把玩HttpClient之模擬post請求示例

2021-08-30 06:36:42 字數 2075 閱讀 9676

httpclient 是 apache jakarta common 下的子專案,可以用來提供高效的、最新的、功能豐富的支援 http 協議的客戶端程式設計工具包,並且它支援 http 協議最新的版本和建議。當前官網最新版介紹頁是:

使用httpclient傳送請求、接收響應很簡單,一般需要如下幾步即可:

建立closeablehttpclient物件。

建立請求方法的例項,並指定請求url。如果需要傳送get請求,建立httpget物件;如果需要傳送post請求,建立httppost物件。

如果需要傳送請求引數,可可呼叫setentity(httpentity entity)方法來設定請求引數。setparams方法已過時(4.4.1版本)。

呼叫httpget、httppost物件的setheader(string name, string value)方法設定header資訊,或者呼叫setheaders(header headers)設定一組header資訊。

呼叫closeablehttpclient物件的execute(httpurirequest request)傳送請求,該方法返回乙個closeablehttpresponse。

呼叫httpresponse的getentity()方法可獲取httpentity物件,該物件包裝了伺服器的響應內容。程式可通過該物件獲取伺服器的響應內容;呼叫closeablehttpresponse的getallheaders()、getheaders(string name)等方法可獲取伺服器的響應頭。

釋放連線。無論執行方法是否成功,都必須釋放連線

具體**如下(httpclient-4.4.1):

/**

* 簡單httpclient例項

}//設定引數到請求物件中

system.out.println("請求引數:"+nvps.tostring());

//設定header資訊

//指定報文頭【content-type】、【user-agent】

//執行請求操作,並拿到結果(同步阻塞)

//獲取結果實體

//釋放鏈結

response.close();

return body;}}

在main方法中測試一下:

public static void main(string args) throws parseexception, ioexception
結果如下:

請求引數:[dfc=1, charset=utf-8, day=0, code=js, city=上海]

交易響應結果:

(function()];var add=;window.swther=;})();//0

public static void main(string args) throws parseexception, ioexception
結果發現,居然正常拿到結果了:

原來如果**的證書已經被ca機構認證通過了,那麼用httpclient來呼叫的話,會直接成功的。不用再單獨配置htts鏈結了。不過如果是自簽名的證書,還是需要配置https的,下篇就來配置一下吧,敬請期待。

HttpClient之Multipart上傳檔案

multipart的具體含義可參考博文,或者rfc2046,httpclient提供的multipartentitybuilder類是對此規範的具體實現。如下圖所示,最重要的屬性有三個 每個part的具體實現類,同樣包含三個重要屬性 contentbody表示part中具體的資料,如下圖所示有四個實...

Get Post請求之HttpClient介紹

httpclient是基於http協議的一門技術,org.apache.http.client.httpclient和org.apache.commons.httpclient.httpclient是兩個不同的httpclient介面。基於commons的httpclient已經不再進行後續的開發。...

把玩之python爬蟲urllib2

1,什麼是urllib2庫?urllib2是python的乙個獲取urls的元件,通過urlopen函式的形式來提供了乙個非常簡單的介面,根據不同協議獲取urls的能力,urllib2提供了乙個比較復 雜的介面來處理情況,例如 基礎驗證,cookies,和其他。我們分析 response urlli...