jsp 中HttpClient中的POST方法實(shí)例詳解
jsp 中HttpClient中的POST方法實(shí)例詳解
POST方法用來(lái)向目的服務(wù)器發(fā)出請(qǐng)求,要求它接受被附在請(qǐng)求后的實(shí)體,并把它當(dāng)作請(qǐng)求隊(duì)列(Request-Line)中請(qǐng)求URI所指定資源的附加新子項(xiàng)。POST被設(shè)計(jì)成用統(tǒng)一的方法實(shí)現(xiàn)下列功能:
- 對(duì)現(xiàn)有資源的注釋
- 向電子公告欄、新聞組,郵件列表或類似討論組發(fā)送消息
- 提交數(shù)據(jù)塊,如將表單的結(jié)果提交給數(shù)據(jù)處理過(guò)程
- 通過(guò)附加操作來(lái)擴(kuò)展數(shù)據(jù)庫(kù)
調(diào)用HttpClient中的PostMethod與GetMethod類似,除了設(shè)置PostMethod的實(shí)例與GetMethod有些不同之外,剩下的步驟都差不多。
構(gòu)造PostMethod之前的步驟都相同,與GetMethod一樣,構(gòu)造PostMethod也需要一個(gè)URI參數(shù),在本例中,登錄的地址是http://www.newsmth.NET/bbslogin2.PHP。在創(chuàng)建了PostMethod的實(shí)例之后,需要給method實(shí)例填充表單的值,在BBS的登錄表單中需要有兩個(gè)域,第一個(gè)是用戶名(域名叫id),第二個(gè)是密碼(域名叫passwd)。表單中的域用類NameValuePair來(lái)表示,該類的構(gòu)造函數(shù)第一個(gè)參數(shù)是域名,第二參數(shù)是該域的值;將表單所有的值設(shè)置到PostMethod中用方法setRequestBody。另外由于BBS登錄成功后會(huì)轉(zhuǎn)向另外一個(gè)頁(yè)面,但是HttpClient對(duì)于要求接受后繼服務(wù)的請(qǐng)求,比如POST和PUT,不支持自動(dòng)轉(zhuǎn)發(fā),因此需要自己對(duì)頁(yè)面轉(zhuǎn)向做處理。具體的頁(yè)面轉(zhuǎn)向處理請(qǐng)參見(jiàn)下面的"自動(dòng)轉(zhuǎn)向"部分。代碼如下:
String url = "http://www.newsmth.net/bbslogin2.php";
PostMethod postMethod = new PostMethod(url);
// 填入各個(gè)表單域的值
NameValuePair[] data = { new NameValuePair("id", "youUserName"),
new NameValuePair("passwd", "yourPwd") };
// 將表單的值放入postMethod中
postMethod.setRequestBody(data);
// 執(zhí)行postMethod
int statusCode = httpClient.executeMethod(postMethod);
// HttpClient對(duì)于要求接受后繼服務(wù)的請(qǐng)求,象POST和PUT等不能自動(dòng)處理轉(zhuǎn)發(fā)
// 301或者302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY ||
statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
// 從頭中取出轉(zhuǎn)向的地址
Header locationHeader = postMethod.getResponseHeader("location");
String location = null;
if (locationHeader != null) {
location = locationHeader.getValue();
System.out.println("The page was redirected to:" + location);
} else {
System.err.println("Location field value is null.");
}
return;
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java使用HttpClient實(shí)現(xiàn)Post請(qǐng)求實(shí)例
- httpclient模擬post請(qǐng)求json封裝表單數(shù)據(jù)的實(shí)現(xiàn)方法
- JAVA利用HttpClient進(jìn)行POST請(qǐng)求(HTTPS)實(shí)例
- HttpClient通過(guò)Post上傳文件的實(shí)例代碼
- Java利用HttpClient模擬POST表單操作應(yīng)用及注意事項(xiàng)
- java使用httpclient模擬post請(qǐng)求和get請(qǐng)求示例
- java使用httpclient發(fā)送post請(qǐng)求示例
- Android下通過(guò)httpClient發(fā)送GET和POST請(qǐng)求的實(shí)例代碼
- Android HttpClient GET或者POST請(qǐng)求基本使用方法
相關(guān)文章
關(guān)于jsp中cookie丟失問(wèn)題(詳解)
下面小編就為大家?guī)?lái)一篇關(guān)于jsp中cookie丟失問(wèn)題(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
JSP中EL表達(dá)式用法_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了JSP頁(yè)面中支持使用的EL表達(dá)式用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法
下面小編就為大家分享一篇在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
運(yùn)行時(shí)實(shí)現(xiàn)Java的多態(tài)性
運(yùn)行時(shí)實(shí)現(xiàn)Java的多態(tài)性...2006-10-10
詳解Struts2中Action訪問(wèn)Servlet API的幾種方法
這篇文章主要介紹了詳解Struts2中Action訪問(wèn)Servlet API的幾種方法的相關(guān)資料,這里提供三種方法,一般推薦使用,IOC方式,需要的朋友可以參考下2017-08-08
ssh項(xiàng)目環(huán)境搭建步驟(web項(xiàng)目)
這篇文章主要介紹了ssh項(xiàng)目環(huán)境搭建步驟(web項(xiàng)目),需要的朋友可以參考下2014-05-05

