教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

PHP培訓(xùn)之Post方式提交數(shù)據(jù)到服務(wù)器

更新時(shí)間:2016年06月30日14時(shí)26分 來(lái)源:PHP培訓(xùn)學(xué)院 瀏覽次數(shù):

我們已經(jīng)了解Get方式請(qǐng)求數(shù)據(jù)到服務(wù)器的編寫(參考:Get方式提交數(shù)據(jù)到服務(wù)器),下面我們來(lái)接著了解Post請(qǐng)求數(shù)據(jù)的方式。

1.抓取Post數(shù)據(jù)流

Post方式請(qǐng)求數(shù)據(jù)的原理是怎樣的?與Get方式請(qǐng)求數(shù)據(jù)的過(guò)程有什么區(qū)別呢?下面我們通過(guò)httpwatch來(lái)抓取post方式請(qǐng)求數(shù)據(jù)的過(guò)程。
  • web項(xiàng)目的jsp頁(yè)面中接著編寫post請(qǐng)求表單,效果如圖1-1所示:


圖1-1所示
圖1-1對(duì)應(yīng)的jsp頁(yè)面代碼如例1-1:
  1. jsp代碼



  • 在IE瀏覽器中訪問(wèn)該登錄界面,當(dāng)以post方式點(diǎn)擊“提交查詢內(nèi)容”按鈕時(shí),抓取數(shù)據(jù)流如圖1-2所示


圖1-2所示

1.Get請(qǐng)求和Post請(qǐng)求的區(qū)別

通過(guò)httpwatch抓取Post數(shù)據(jù)流(本例圖1-2)和Get數(shù)據(jù)流我們可以得出如下幾個(gè)結(jié)論:
  • Get向特定的資源發(fā)出請(qǐng)求,Post向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請(qǐng)求體中。get和post只是一種傳遞數(shù)據(jù)的方式,get也可以把數(shù)據(jù)傳到服務(wù)器,它們的本質(zhì)都是發(fā)送請(qǐng)求和接收結(jié)果,只是組織格式和數(shù)據(jù)量上有差別,這個(gè)在http協(xié)議中有介紹。
  • Get是把參數(shù)拼接到URL路徑上傳到服務(wù)端,在瀏覽器中是可見的。Post是通過(guò)http Post機(jī)制,將表內(nèi)各個(gè)字段和對(duì)應(yīng)的內(nèi)容放在HTML HEADER內(nèi)一起傳送到ACTION屬性所指向的URL。
  • Get傳輸?shù)臄?shù)據(jù)較?。╤ttp協(xié)議規(guī)定最大的數(shù)據(jù)長(zhǎng)度是4KB,但實(shí)際中最大的數(shù)據(jù)長(zhǎng)度是2KB),Post傳遞數(shù)據(jù)較大。
  • Get安全性非常低,Post安全性相對(duì)較高。

2.Android編寫Post請(qǐng)求數(shù)據(jù)

在項(xiàng)目Get方式提交數(shù)據(jù)到服務(wù)器中我們已經(jīng)編寫了其對(duì)應(yīng)的請(qǐng)求頁(yè)面和請(qǐng)求響應(yīng)事件,下面是在該項(xiàng)目的基礎(chǔ)上編寫Post請(qǐng)求數(shù)據(jù)的頁(yè)面布局和請(qǐng)求響應(yīng)事件,具體操作如下:
  • 調(diào)整xml頁(yè)面布局,效果如圖1-3所示:


圖1-3所示
  • 在Activity中編寫“POST方式登錄“按鈕的點(diǎn)擊事件,具體代碼如例1-2:
例1-2



參考圖1-2的請(qǐng)求報(bào)文編寫Post請(qǐng)求的點(diǎn)擊事件,該方法和get請(qǐng)求的點(diǎn)擊事件基本上一致,紅色方框區(qū)域是兩種不同請(qǐng)求方式的區(qū)別。由于post請(qǐng)求參數(shù)是以流的形式提交到服務(wù)器的,所以在建立URL鏈接時(shí)該url路徑中無(wú)須拼接請(qǐng)求參數(shù)。調(diào)用setRequestProperty方法來(lái)設(shè)置請(qǐng)求參數(shù)的類型以及長(zhǎng)度,并向服務(wù)端寫數(shù)據(jù)流。
運(yùn)行程序,當(dāng)點(diǎn)擊“Post方式登錄”按鈕時(shí),效果如圖1-4所示:

圖1-4所示
此時(shí)服務(wù)端控制臺(tái)打印出如圖1-5所示信息:

圖1-5所示

本文版權(quán)歸傳智播客PHP培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客PHP培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/php/

0 分享到:
和我們?cè)诰€交談!