請求頭Content-Type
這是我第9篇簡書
Content-Type,內容型別,一般是指網頁中存在的 Content-Type
,用於定義網路檔案的型別和網頁的編碼。在HTTP協議訊息頭中,使用Content-Type來表示請求和響應中的媒體型別資訊。它用來告訴服務端如何處理請求的資料,以決定瀏覽器將以什麼形式、什麼編碼讀取這個檔案,這就是經常看到一些Asp網頁點選的結果卻是下載到的一個檔案或一張圖片的原因。
你們在使用Postman時,搞清楚下面這幾個是幹啥的嗎

接下來介紹4個常用的型別。
一. multipart/form-data
form-data
就是指的
multipart/form-data
這是一個多部分多媒體型別,它是一個常見的 POST 資料提交的方式,它會生成了一個 boundary 用於分割不同的欄位。它會將表單的資料處理為一條訊息,以標籤為單元,用分隔符分開。 既可以上傳鍵值對,也可以上傳檔案。 當上傳的欄位是檔案時,會有Content-Type來說明檔案型別。
注意,當使用表單上傳檔案時,必須讓 form 的 enctype 等於這個值。
<form action="/" method="post" enctype="multipart/form-data"> <input type="text" name="username"> <button type="submit">Submit</button> </form>
二. application/x-www-form-urlencoded
上圖的 x-www-form-urlencoded
就是指的 application/x-www-form-urlencoded
一般用於 表單提交 ,會將請求引數用 key1=val1&key2=val2
的方式進行組織和編碼,key 和 val 都進行了 URL 轉碼,並放到請求實體裡面(注意如果是中文或特殊字元如"/"、","、“:" 等會自動進行URL轉碼)。
三. application/json
最常用的。使用這個型別,提交的是序列化後的 JSON 字串,服務端/客戶端會按json格式解析資料

raw
,表示可上傳任意格式的文字,可以上傳text、json、xml、html等各種文字型別,一般用來選擇
application/json
傳入json格式的引數。
四. text/xml
即傳遞XML格式,在以前比較常用,不接觸老的專案應該用不到。
五. 一些補充
1. application/octet-stream
上圖 binary
指的是 application/octet-stream
。
Content-Type為 application/octet-stream
時,只可上傳二進位制資料,通常用來上傳檔案,沒有鍵值,一次只能上傳一個檔案。
2.multipart/form-data和application/x-www-form-urlencoded的區別
- multipart/form-data:既可以上傳檔案等二進位制資料,也可以上傳表單鍵值對,只是最後會轉化為一條資訊。
- application/x-www-form-urlencoded:只能上傳鍵值對,且鍵值對都是間隔分開。
3.Content-Type設定建議
- restful介面(json格式),一般將Content-Type設定為application/json; charset=UTF-8
- 檔案上傳,Content-Type設定為multipart/form-data
- 普通表單提交,Content-Type設定為application/x-www-form-urlencoded