轉載:https://www.cnblogs.com/yoyoketang/p/6771696.html
前言上一篇講過get請求的參數都在url裏,post的請求相對於get請求多了個body部分,本篇就詳細講解下body部分參數的幾種形式。
一、body數據類型
常見的post提交數據類型有四種:
1.第一種:application/json:這是最常見的json格式,也是非常友好的深受小夥伴喜歡的一種,如下
{"input1":"xxx","input2":"ooo","remember":false}
2.第二種:application/x-www-form-urlencoded:瀏覽器的原生 form 表單,如果不設置 enctype 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交數
input1=xxx&input2=ooo&remember=false
3.第三種:multipart/form-data:這一種是表單格式的,數據類型如下
------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: form-data; name="text" title ------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: form-data; name="file"; filename="chrome.png" Content-Type: image/png PNG ... content of chrome.png ... ------WebKitFormBoundaryrGKCBY7qhFd3TrwA--
4.第四種:text/xml:這種直接傳的xml格式
<!--?xml version="1.0"?-->
<methodcall>
<methodname>examples.getStateName</methodname>
<params>
<param>
<value><i4>41</i4></value>
</params>
</methodcall>
二、json格式
1.打開博客園的登錄頁面,輸入賬號密碼後抓包,查看post提交數據,點開Raw查看整個請求的原始數據
2.前面講過post的請求多一個body部分,上圖紅色區域就是博客園登錄接口的body部分,很明顯這種格式是前面講到的第一種json格式
3.查看json格式的樹狀結構,更友好,可以點開JSON菜單項
4.查看這裏的json數據,很明顯傳了三個參數:
--input1:這個是登錄的賬號參數(加密過)
--input2:這個是登錄的祕密參數(加密過)
--remember:這個是登錄頁面的勾選是否記住密碼的選項,False是不記住,True是記住
三、x-www-form-urlencoded
1.登錄博客園後,打開新隨筆,隨便寫一個標題和一個正文後保存,抓包數據如下
2.如上圖的這種格式,很明顯就屬於第二種了,這種類型的數據查看,在WebFrom裏面查看了
3.上面紅色框框的Query String是url裏面的參數,下面紅色框框的body部分就是這次post提交的body參數部分了
四、WebFrom
1.爲什麼登錄請求的WebFrom的body部分爲空呢?
2.看上圖紅色框框的顯示:這裏只支持application/x-www-form-urlencoded這種格式的body參數,也就是說json格式的,需要在JOSN這一欄查看了
五、xml
1.如果遇到text/xml這種格式的body,那就如下圖這樣的了