1、HTTP請求Content-Typehtml
常見的媒體格式類型以下:ajax
以application開頭的媒體格式類型:json
另一種常見的媒體格式是上傳文件之時使用的:後端
2、幾種常見的Content-Type類型服務器
一、application/x-www-form-urlencodedcookie
經常使用於原生的 form 表單提交,若是不指定content-type,默認使用此格式提交數據。app
參數格式:key1=value1&key2=value2工具
二、content-type:multipart/form-datapost
另外一個常見的 POST 數據提交的方式, Form 表單的 enctype 設置爲multipart/form-data,它會將表單的數據處理爲一條消息,以標籤爲單元,用分隔符(這就是boundary的做用)分開。
因爲這種方式將數據有不少部分,它既能夠上傳鍵值對,也能夠上傳文件,甚至多個文件。當上傳的字段是文件時,會有Content-Type來講明文件類型;Content-disposition,用來講明字段的一些信息。每部分都是以分隔符開始,緊接着是內容描述信息,而後是回車,最後是字段具體內容(字段、文本或二進制等)。若是傳輸的是文件,還要包含文件名和文件類型信息。消息主體最後以 分隔符標示結束。測試
經常使用於文件傳輸
發送的請求示例:
三、application/json
以Json格式編碼數據體,方便傳輸結構化數據(相比鍵值對),普遍用於 ajax 請求
參數爲json格式
{
"key1":"value1",
"key2":"value2"
}
四、text/xml
以xml格式編碼數據體,是早期普遍使用的格式
3、不一樣的content-type在jmeter中如何輸入參數
一、application/x-www-form-urlencoded
參數能夠在Parameters或Body Data裏輸入,格式不一樣。這兩個參數輸入的tab頁只能使用一個,某一個有數據後不能切換到另外一個。
示例以下
Parameters:
Body Data:
二、 content-type:application/json
(1)http請求頭管理裏面設置content-type爲application/json
(2)在http請求,Body Data中輸入json格式的參數
三、content-type:multipart/form-data
這種content-type的使用我的還沒徹底會使用,下面內容摘自該文章:https://cloud.tencent.com/developer/news/367695
multipart/form-data主要用於post請求體中須要上傳文件的場景。網上不少帖子告訴你們怎麼傳文件,卻忽略了當post請求體中既須要上傳文件,又須要傳通常的json格式參數這種場景,下面就以經常使用的三種接口測試方法介紹multipart/form-data格式請求的發送,但願能夠減小你們將會踩到的坑(工具裏的一些設置原理沒有搞得太清楚,可是如下的實現方式親測有效):
(1)填寫protocal、host、port、method、url、encoding等;
(2)勾選Use multipart/form-data for POST;
(3)parameter中填寫請求中除文件外的普通json格式參數;
(4)在Files Upload中填寫須要上傳的文件路徑、參數名、MIME Type(multipart/form-data);若是這裏沒有須要上傳的文件,也能夠不填,只發送parameters中的參數,前提是後端接口認爲這個參數不是必傳參數;
(5)http頭信息中輸入cookie等信息,這裏千萬不要輸入content-type爲multipart/form-data,在請求那裏已經勾選了Use multipart/form-data for POST(注:若是頭信息這裏輸入了content-type爲multipart/form-data,那麼全部的參數都會被當成文件以二進制形式傳輸,咱們parameter裏的文本格式參數就不會被識別,接口會提示那些參數爲空,這點絕對是萬年坑);
(6)接下來咱們觀察下咱們發送出的請求具體內容:
第1處:有些同窗會有疑問說那文件格式的上傳是以二進制形式的,multipart/form-data格式的參數的分隔符boundary呢,jmeter會自動生成;
第2處:能夠看到tmp.py這個文件名和前面的name是這個文件在當前接口中的參數名;
第3處:說明該文件content-type爲multipart/form-data;
第4處:實際的文件內容在這裏不會展現;
能夠看到咱們在parameter中輸入的非文件類型參數的content-type爲text/plain;