Ali*_*ice 4 python python-2.7 python-requests
我使用一个图书馆requests:
import requests
r = requests.post(url=url, data=data, headers=headers, auth=(self.api_key, ''))
Run Code Online (Sandbox Code Playgroud)
如何在发送 POST 请求之前显示正文和标头?或显示完整的请求如何发送?
因为服务器返回 400 HTTP 并带有消息 Bad Request。所以我需要看看发送了什么。
当我做:
print r.request.body
Run Code Online (Sandbox Code Playgroud)
它返回:
subcategory_id=1378&category_id=45&features=id&features=value&features=id&features=value&features=id&features=value&offer_type=18979
Run Code Online (Sandbox Code Playgroud)
但身体是:
data = {
'category_id': category_id,
'subcategory_id': subcategory_id,
'offer_type': offer_type,
'features': [
{"id": "7", "value": "12900"},
{"id": "12", "value": "Title adadadadasdasdadad"},
{"id": "16", "value": ["3360383821"]}
]
}
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
r.request就是Request你需要的对应对象。
import requests
r = requests.post(url=url, data=data, headers=headers, auth=(self.api_key, ''))
print r.request.headers
print r.request.body
Run Code Online (Sandbox Code Playgroud)
你可以在收到回复后进行操作,一切都还在那里。请参阅PreparedRequest。
至于您编辑的问题,请使用requests.post(url=url, json=data, ...).