POST方式送出資料,一種衆所周知的方式:
html頁面中使用form表單送出,接收方式,使用Request.Form[""]或Request.QueryString[""]來擷取。
這裡介紹另外一種POST方式和接收方式,就是将整個資料作為加入到資料流中送出和接收
接收方式:
隻需要從input Stream中讀取byte資料,然後轉為string,再解析即可。如果要回複響應消息隻需要用:Response.Write() 輸出即可(和普通的頁面輸出一樣)。
主動POST發送方式:
使用HttpClient對象發送
從代碼中可以看出僅僅是将字元串轉為byte[] 類型,并加入到請求流中,進行請求即可達到POST效果,該種POST方式與上邊所提到的接收方式互相配合使用。
下面一種方式是以鍵值對的方式主動POST傳輸的。
通過兩種主動POST送出 的代碼可以看出,其主要差別在于發送前的資料格式 ContentType 的值。
下面列舉幾種常用的ContentType 值,并簡述他們的差別
Content-Type 被指定為 application/x-www-form-urlencoded 時候,傳輸的資料格式需要如 title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3 所示格式,才能正确解析
Content-Type 被指定為 multipart/form-data 時候,所需格式如下面代碼塊中所示
Content-Type 也可以被指定為 application/json ,最終傳輸格式為 {"title":"test","sub":[1,2,3]} 至于如何接收本人未經嘗試,但是可以肯定的講使用文章開頭所說的接收方式接收後轉為string類型再
發序列化是可行的。
Content-Type指定為 text/xml ,傳輸的資料格式為
此種方式,本人亦未經嘗試,接受方式可以參考上文中 application/json 的接收方式。
由于xml的格式傳輸資料,使用相對較少,相信很多同學亦不知道如何将字元串解析為對象,下文将提供一種轉換方式,供參考