我通过resqusts发送了一个post请求,返回的却是get的请求结果。当我通过浏览器访问时,又是正常的post请求结果。请问这是怎么回事?
如果你通过 requests 库发送 POST 请求,但是得到的结果却是 GET 请求的结果,这可能有几个原因:
使用了错误的请求方法: 确保你在使用 requests.post() 方法发送 POST 请求,而不是 requests.get() 方法。
python
Copy code
import requests
response = requests.post('https://example.com/api', data={'key': 'value'})
可能存在重定向: 如果服务器返回了重定向响应 (状态码为 3xx),而且 requests 库默认会自动跟随重定向。在这种情况下,原本的 POST 请求可能会变成 GET 请求。你可以通过设置 allow_redirects 参数为 False 来禁止自动重定向,然后查看响应的状态码,以确定是否存在重定向。
python
Copy code
import requests
response = requests.post('https://example.com/api', data={'key': 'value'}, allow_redirects=False)
print(response.status_code) # 打印响应的状态码
服务器端可能存在问题: 如果以上两种情况都没有问题,那么可能是服务器端的配置或处理逻辑导致的问题。在这种情况下,你需要进一步检查服务器端的日志或与服务器端的开发人员联系,以了解发生了什么问题。
确保你的代码正确发送 POST 请求,并根据上述可能的原因之一检查问题所在。
是的,发生了重定向。你这么一说,我才找到错误原因。谢谢啦
post 请求发生了重定向。但是重定向的请求依旧是原网页,只不过post变成了get。这是怎么回事呢?
抱歉抱歉,网址换了个字母。重定向到了新资源。我没发现。换了新url就OK了
?你的说法很不合逻辑啊,是不是后台接口逻辑出问题了