在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:只能上傳鍵值對,且鍵值對都是間隔分開。)
一、form-data: javascript
就是http請求中的multipart/form-data,它會將表單的數據處理爲一條消息,以標籤爲單元,用分隔符分開。既能夠上傳鍵值對,也能夠上傳文件。當上傳的字段是文件時,會有Content-Type來講明文件類型;content-disposition,用來講明字段的一些信息;html
因爲有boundary隔離,因此multipart/form-data既能夠上傳文件,也能夠上傳鍵值對,它採用了鍵值對的方式,因此能夠上傳多個文件。java
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
二、x-www-form-urlencoded:json
就是application/x-www-from-urlencoded,會將表單內的數據轉換爲鍵值對,好比,name=Java&age = 23瀏覽器
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
三、rawapp
能夠上傳任意格式的文本,能夠上傳text、json、xml、html等post
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
四、binary編碼
至關於Content-Type:application/octet-stream,從字面意思得知,只能夠上傳二進制數據,一般用來上傳文件,因爲沒有鍵值,因此,一次只能上傳一個文件。url
重點:spa
multipart/form-data與x-www-form-urlencoded區別
multipart/form-data:既能夠上傳文件等二進制數據,也能夠上傳表單鍵值對,只是最後會轉化爲一條信息;
x-www-form-urlencoded:只能上傳鍵值對,而且鍵值對都是間隔分開的