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...