POST請求BODY格式區別


在PostMan中用Post方式,Body有form-data,x-www-form-urlencoded,raw,binary四種。
Request Header示例:
POST /upload.do HTTP/1.1
User-Agent: SOHUWapRebot
Accept-Language: zh-cn,zh;q=0.5
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Length: 60408
Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Host: www.sohu.com
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Content-Disposition: form-data;name="desc"
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[......][......][......][......]...........................
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC
Content-Disposition: form-data;name="pic"; filename="photo.jpg"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
[圖片二進制數據]
--ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC--
 
x-www-form-urlencoded
是http請求中的application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對,&分隔。
當form的action為get時,瀏覽器用x-www-form-urlencoded的編碼方式,將表單數據編碼為
(name1=value1&name2=value2…),然后把這個字符串append到url后面,用?分隔,跳轉
到這個新的url。
當form的action為post時,瀏覽器將form數據封裝到http body中,然后發送到server。
這個格式不能提交文件。
raw
可以上傳任意格式的文本,可以上傳text、json、xml、html、javascript等
binary
等同於Content-Type:application/octet-stream,只可上傳二進制數據,通常用來上傳文件,由於沒有鍵值,所以一次只能上傳一個文件。
注意:
form-data與x-www-form-urlencoded不同之處在於(multipart/form-data:既可以上傳文件等二進制數據,也可以上傳表單鍵值對,只是最后會轉化為一條信息; x-www-form-urlencoded只能上傳鍵值對,且鍵值對都是間隔分開。)

1、form-data

                   就是http請求中的multipart/form-data,它會將表單的數據處理為一條消息,以標簽為單元,用分隔符分開。既可以上傳鍵值對,也可以上傳文件。當上傳的字段是文件時,會有Content-Type來說明文件類型content-disposition,用來說明字段的一些信息

由於有boundary隔離,所以multipart/form-data既可以上傳文件,也可以上傳鍵值對,它采用了鍵值對的方式,所以可以上傳多個文件。

 

                 

2、x-www-form-urlencoded:

             就是application/x-www-from-urlencoded,會將表單內的數據轉換為鍵值對,比如,name=Java&age = 23

 

3、raw

            可以上傳任意格式的文本,可以上傳text、json、xml、html等

4、binary

          相當於Content-Type:application/octet-stream,從字面意思得知,只可以上傳二進制數據,通常用來上傳文件,由於沒有鍵值,所以,一次只能上傳一個文件。

 

 重點:

multipart/form-data與x-www-form-urlencoded區別

               multipart/form-data:既可以上傳文件等二進制數據,也可以上傳表單鍵值對,只是最后會轉化為一條信息;

               x-www-form-urlencoded:只能上傳鍵值對,並且鍵值對都是間隔分開的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM