我們?cè)谄綍r(shí)的postman請(qǐng)求調(diào)試,以及web的http請(qǐng)求開發(fā)時(shí),常常能看到以下幾種傳參的形式 form-data、x-www-form-urlencoded、raw、binary,那么這些請(qǐng)求方式的區(qū)別是什么呢? postman post param
1、form-data:就是http請(qǐng)求中的multipart/form-data,它會(huì)將表單的數(shù)據(jù)處理為一條消息,以標(biāo)簽為單元,用分隔符分開。既可以上傳鍵值對(duì),也可以上傳文件。當(dāng)上傳的字段是文件時(shí),會(huì)有Content-Type來(lái)說(shuō)明文件類型;content-disposition,用來(lái)說(shuō)明字段的一些信息; 由于有boundary隔離,所以multipart/form-data既可以上傳文件,也可以上傳鍵值對(duì),它采用了鍵值對(duì)的方式,所以可以上傳多個(gè)文件。 上圖中我們可以看到在postman中form-data選項(xiàng),key是有下拉選擇項(xiàng)的,這也說(shuō)明了form-data類型支持key-value和文件傳輸。 上圖中我們可以看到,明顯的不同的key參數(shù)之間是有boundary分割的。每個(gè)參數(shù)都有Content-Disposition: form-data; name="xxx"信息 2、x-www-form-urlencoded:就是application/x-www-from-urlencoded,會(huì)將表單內(nèi)的數(shù)據(jù)轉(zhuǎn)換為鍵值對(duì),比如,name=java&age = 23 我們可以看到,這個(gè)形式的傳參方式,postman的key是并沒(méi)有像form-data一樣改出File的下拉選項(xiàng)的,這也說(shuō)明了這種方式只支持string的key-value值傳遞。 在上圖中我們也能明顯的看到在http的body體中傳輸?shù)母袷健M瑫r(shí)我們也看到對(duì)于存在中文和空格的情況,它是會(huì)進(jìn)行轉(zhuǎn)換的。
3、raw可以上傳任意格式的文本,可以上傳text、json、xml、html等 http的傳輸格式: 4、binary相當(dāng)于Content-Type:application/octet-stream,從字面意思得知,只可以上傳二進(jìn)制數(shù)據(jù),通常用來(lái)上傳文件,由于沒(méi)有鍵值,所以,一次只能上傳一個(gè)文件。 postman中也可以看出,下面只有一個(gè)select file的功能。也說(shuō)明只能傳文件。 輔助postman有個(gè)很好用的功能預(yù)覽代碼,點(diǎn)擊右側(cè)code,選擇格式 有多種格式,尤其是對(duì)于各種語(yǔ)言的功能,比如像Go語(yǔ)言,直接生成代碼,簡(jiǎn)直太6了。大家也可以親自看一下。代碼簡(jiǎn)直是可以直接拿過(guò)去用了。 參考:1、postman中 form-data、x-www-form-urlencoded、raw、binary的區(qū)別 |
|
來(lái)自: 創(chuàng)始元靈6666 > 《android》