我调用 requests.post 但它最终发出 GET 请求。
post_body="""
{
...
}
"""
headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
post_response = requests.post("https://...", data=post_body, headers=headers)
print(post_response.request.method)
最后一个打印语句打印“GET”。我希望看到“POST”。
为了进一步调试,我更改了代码,如下所示:
req = requests.Request('POST', "https://...", data=booking_body, headers=headers)
prepared = req.prepare
print(prepared.method) // "POST"
s = requests.Session()
post_response = s.send(prepared)
print(post_response.request.method) // "GET"
打印语句打印“POST”和“GET”。我做错了什么?
附注:
$ python3 -V
Python 3.7.0
最佳答案
正如评论中所述,问题在于重定向。该调用最初是对 http://...
进行的,然后重定向到 https://...
。因此,最后一个方法是 GET
。
首次调用 https://...
后,问题就得到解决。
关于python-3.x - requests.post 发出 get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63678610/