天天看點

C#中POST資料和接收的幾種方式

POST方式送出資料,一種衆所周知的方式:

html頁面中使用form表單送出,接收方式,使用Request.Form[""]或Request.QueryString[""]來擷取。

這裡介紹另外一種POST方式和接收方式,就是将整個資料作為加入到資料流中送出和接收

接收方式:

隻需要從input Stream中讀取byte資料,然後轉為string,再解析即可。如果要回複響應消息隻需要用:Response.Write()  輸出即可(和普通的頁面輸出一樣)。

主動POST發送方式:

C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式

使用HttpClient對象發送

C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式

從代碼中可以看出僅僅是将字元串轉為byte[] 類型,并加入到請求流中,進行請求即可達到POST效果,該種POST方式與上邊所提到的接收方式互相配合使用。

下面一種方式是以鍵值對的方式主動POST傳輸的。

C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中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 時候,所需格式如下面代碼塊中所示

C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式

Content-Type 也可以被指定為 application/json ,最終傳輸格式為 {"title":"test","sub":[1,2,3]}  至于如何接收本人未經嘗試,但是可以肯定的講使用文章開頭所說的接收方式接收後轉為string類型再

發序列化是可行的。

Content-Type指定為 text/xml  ,傳輸的資料格式為

C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式

此種方式,本人亦未經嘗試,接受方式可以參考上文中 application/json 的接收方式。

由于xml的格式傳輸資料,使用相對較少,相信很多同學亦不知道如何将字元串解析為對象,下文将提供一種轉換方式,供參考

C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式
C#中POST資料和接收的幾種方式