http請求常用的ContentType類型及請求體

1. x-www-form-urlencoded

瀏覽器原生表單默認的提交數據的方式(就是沒有設置enctype屬性),POST提交數據的默認方式,將表單內的數據轉換爲Key-Value。請求body中按照 key1=value1&key2=value2 進行編碼,key和value都要進行urlEncode,所以如果傳遞的參數存在中文或者特殊字符需要注意。

POST http://localhost:8087/x-www-form-urlencoded HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Fiddler
Host: localhost:8087
Content-Length: 14
//注意空行不能丟
fileName=88888

2.text/xml

text/xml和application/xml區別:
text/xml忽略xml文件頭中的關於編碼的設定(<?xml version=”1.0” encoding=”UTF-8”?>),默認採用us-ascii編碼。
application/xml會依照xml文件頭中編碼的設定。

POST http://localhost:8087/text/xml HTTP/1.1
Content-Type: text/xml
User-Agent: Fiddler
Host: localhost:8087
Content-Length: 237
//注意空行不能丟
<?xml version="1.0"?>
<resource>
	<id>123</id>
</resource>

3. application/json

application/json 這個 Content-Type 常作爲作爲響應頭,用來告訴客戶端消息主題是序列化後的JSON字符串。

POST http://localhost:8087/json HTTP/1.1
Content-Type: application/json
User-Agent: Fiddler
Host: localhost:8087
Content-Length: 20
//注意空行不能丟
{"fileName":"88888"}

4. multipart/form-data

multipart/form-data常見的 POST 數據提交的方式。我們使用表單上傳文件時,必須讓 表單的 enctype 等於 multipart/form-data。它將表單的數據組織成Key-Value形式,用分隔符boundary(boundary可任意設置)處理成一條消息。由於有boundary隔離,所以既可以上傳文件,也可以上傳參數。

POST http://localhost:8087/form-data HTTP/1.1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
User-Agent: Fiddler
Host: localhost:8087
Content-Length: 338

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="fileName"

123123123
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="fieldNameHere";filename="Resin啓動2.png"
Content-Type: image/png

圖片內容werwrwerwrwerrwrwerwerwer
------WebKitFormBoundary7MA4YWxkTrZu0gW--

請求體中的boundary參數指定的就是分隔體,爲了避免與正文內容重複,boundary 很長很複雜。
消息主體裏分爲多個部分,每部分都是以 --boundary 開始,緊接着是內容描述信息,然後是空行(注意:空行不能夠省略),最後是字段具體內容(文本或二進制)。
如果傳輸的是文件,還要包含文件名和文件類型信息,消息主體最後以 --boundary-- 標示結束。
可以看到請求內容被分爲了兩段,第一段對應fileName參數,第二段對應"Resin啓動2.png" 圖片文件。

5.application/octet-stream

application/octet-stream,只可以上傳二進制數據,通常用來上傳文件。由於沒有鍵值,所以一次只能上傳一個文件。

POST http://localhost:8087/octet-stream HTTP/1.1
Content-Type: application/octet-stream
User-Agent: Fiddler
Host: localhost:8087
Content-Length: 12

octet-stream23312312331331
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章