【HTTP】HTTP請求體中的四種格式
編碼後的字串
import requests
payload = '''
report
Overall:良好
Progress: 30%
Problems:暫無
'''
r = requests.post("http://httpbin.org/post",
data=payload.encode('utf8'))
print(r.text)
XML
如果設計者決定用 XML 格式傳輸一段資訊,用Requests庫,只需要這樣
import requests
payload = '''
<?xml version="1.0" encoding="UTF-8"?>
<WorkReport>
<Overall>良好</Overall>
<Progress>30%</Progress>
<Problems>暫無</Problems>
</WorkReport>
'''
r = requests.post("http://httpbin.org/post",
data=payload.encode('utf8'))
print(r.text)
我們要傳遞的工作報告裡面,存在的問題有 多個,用 XML 就可以這樣表示
<?xml version="1.0" encoding="UTF-8"?>
<WorkReport>
<Overall>良好</Overall>
<Progress>30%</Progress>
<Problems>
<problem no='1'>
<desc>問題1....</desc>
</problem>
<problem no='2'>
<desc>問題2....</desc>
</problem>
</Problems>
</WorkReport>
urlencoded
這種格式的訊息體就是一種 鍵值對的格式存放資料,如下所示
key1=value1&key2=value2
如果引數中本身就有特殊字元,比如等號,就會被看成引數的分隔符,只需要將這些鍵值對的資料填入一個字典。
然後使用post方法的時候,指定引數 data 的值為這個字典就可以了,如下
import requests
#payload ="key1=value1&key2=value2" 可直接傳入字串
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print(r.text)
如果我們用工具抓包就可以發現 傳送的http請求如下
json
構建一個json 格式的字串,可以使用json庫的dumps方法
import requests,json
payload = {
"Overall":"良好",
"Progress":"30%",
"Problems":[
{
"No" : 1,
"desc": "問題1...."
},
{
"No" : 2,
"desc": "問題2...."
},
]
}
r = requests.post("http://httpbin.org/post", data=json.dumps(payload))
也可以將 資料物件 直接 傳遞給post方法的 json引數,如下
r = requests.post("http://httpbin.org/post", json=payload)
相關文章
- HTTP請求格式和HTTP響應格式HTTP
- POSTMAN HTTP請求的四種方式區別PostmanHTTP
- Http請求資料格式HTTP
- 七種HTTP請求方法HTTP
- Http請求體詳解HTTP
- http請求HTTP
- HTTP 請求HTTP
- 在lua中操作http請求有兩種方式HTTP
- HTTP 協議六種請求方法HTTP協議
- 淺嘗flutter中的http請求FlutterHTTP
- PHP 傳送 HTTP 請求的幾種方式PHPHTTP
- http請求概述HTTP
- HTTP請求方法HTTP
- http請求頭HTTP
- go http請求GoHTTP
- HTTP協議---HTTP請求中的常用請求欄位和HTTP的響應狀態碼及響應頭HTTP協議
- HTTP請求頭中的refer欄位HTTP
- HTTP 請求頭中的 X-Forwarded-ForHTTPForward
- 在Node.js中發起HTTP請求的5種方法Node.jsHTTP
- HTTP的請求過程HTTP
- golang 的 http 請求池GolangHTTP
- 我知道的HTTP請求HTTP
- ES系列(四):http請求分發框架解析HTTP框架
- 合併HTTP請求vs並行HTTP請求,到底誰更快?HTTP並行
- 合併HTTP請求 vs 並行HTTP請求,到底誰更快?HTTP並行
- Cookie 與 HTTP請求CookieHTTP
- Jsoup http請求JSHTTP
- Android Http請求AndroidHTTP
- HTTP請求報文HTTP
- AngularJS中的$http快取以及處理多個$http請求AngularJSHTTP快取
- HTTP請求中的referrer和Referrer-PolicyHTTP
- Http 請求頭中的 Proxy-ConnectionHTTP
- vitess中rpc相容http請求的技巧ViteRPCHTTP
- STM32以JSON格式釋出HTTP請求JSONHTTP
- Http請求get與post請求方式的各種相關面試總結HTTP面試
- HTTP的請求與響應HTTP
- golang常用的http請求操作GolangHTTP
- [前端 · 面試 ]HTTP 總結(三)—— HTTP 請求方法前端面試HTTP