httpClient使用postMethod請求

2021-08-19 11:05:39 字數 3090 閱讀 5974

dependency>

//匯入的jar包

httpclient.gethostconfiguration().setproxy("localhost",8888);//設定本地**,方便fiddler監聽

//使用httpclient登入**,並獲取cookie

postmethod postmethod = new postmethod("loginurl");

//使用namevaluepair 傳遞引數

postmethod method = new postmethod("登入後請求的位址");

namevaluepair data = ;

postmethod.setrequestbody(data);

// 設定 httpclient 接收 cookie,用與瀏覽器一樣的策略

// 獲取請求的cookie

//攜帶請求的cookie

method.setrequestheader("cookie",tmpcookies.tostring());

//發起請求

//獲取請求頭

//獲取響應,postmethod 提供兩種方式,getresponsebodyasstring和getresponsebodyasstream,但前者在沒指定content-length或者content-length過長時會報錯,推薦使用後者.

inputstream stream = method.getresponsebodyasstream();

bufferedreader br = new bufferedreader(new inputstreamreader(stream));

stringbuffer stringbuffer = new stringbuffer();

string str1= "";

while((str1 = br.readline()) !=null)

string sb=stringbuffer.tostring();

//按照utf-8格式輸出響應體

string result = new string(sb.getbytes(),"utf-8");

jsonarray fromobject = jsonarray.fromobject(result);

jsonobject json = fromobject.getjsonobject(0);

logger.info(result);

basiccookiestore cookiestore = new basiccookiestore();

basicclientcookie cookie = new basicclientcookie("key","value");

//請求後獲取得到的cookie1,由於包不同,不能直接直接執行cookiestore.addcookie(cookie1)

//之前妄圖通過basicclientcookie cookie = new basicclientcookie(cookie1.getname,cookie1.getvalue());來強轉換,實測不行。。。

//攜帶cookie資訊還是要通過設定請求頭資訊來

httpclient.execute("method");

解決發起post請求時候中文亂碼問題
//第一種方式        

method.getparams().setparameter(httpmethodparams.http_content_charset,"utf-8");//解決中文亂碼

//第二種方式,通過過載getrequestcharset()方法設定提交的編碼(字符集)。

public

class

utf8postmethod

extends

postmethod

@override

public string getrequestcharset()

}//兩種方式都實測有效。

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

httpclient 是 apache jakarta common 下的子專案,可以用來提供高效的 最新的 功能豐富的支援 http 協議的客戶端程式設計工具包,並且它支援 http 協議最新的版本和建議。當前官網最新版介紹頁是 使用httpclient傳送請求 接收響應很簡單,一般需要如下幾步即...

初步使用HttpClient

剛剛使用httpclient想稍微的總結一下。發現引入最新版本4.5,defaulthttpclient等老版本常用的類已經過時了,不推薦使用了 去官網看了一下在4.3之後就拋棄了。官方推薦使用 defaulthttpclient closeablehttpclient 使用get請求方式,post...

httpClient使用步驟

httpclient使用步驟 1.建立 httpclient 的例項 2.建立某種連線方法的例項,getmethod 或是postmethod。2 對請求體賦值 post方法可使用 method.setrequestbody namevaluepair 對請求附值 get方法可使用 method.s...