python - Python请求头显示“301”而get返回“200”
问题描述
在使用 python 请求库时,我使用 get 和 head http 方法得到了两个不同的响应 -
使用“头”输入:
requests.head("http://stackoverflow.com")
输出:
<Response [301]>
使用“get”输入时:
requests.get("http://stackoverflow.com")
输出是:
<Response [200]>
虽然这很明显“ http://stackoverflow.com ”重定向到“ https://stackoverflow.com ”(作为requests.head("https://stackoverflow.com")
返回<Response [200]>
),这解释了第一个实例的 301 响应,但为什么它没有给出相同的“get”方法的响应?
get 和 head 如何以不同的方式产生这两种不同的结果?
我阅读了 w3.org 文档和 stackoverflow 中的类似问题(例如,HEAD 请求收到“403 禁止”而 GET “200 ok”?)和其他网站,但他们没有解决这个特殊的差异。
解决方案
requests.get()
为了您的方便,自动跟随重定向。
如果您不想要这种行为,请将其关闭。
resp = requests.get("http://stackoverflow.com", allow_redirects=False)
print(resp.status_code)
推荐阅读
- python - 根据python中的格式验证日期
- java - 代码检查不起作用!Intellij IDE
- python - 从另一个模块中的函数访问实例的方法
- google-apps-script - 脚本运行后,必须按 Escape 键才能继续
- c - xv6 引导加载程序:使用 CHS 从磁盘读取扇区
- image-processing - 如何知道单击 3d 对象的不同图像的角度?
- c++ - 给定另一个数据成员时查找一个数据成员
- javascript - 创建一个带有迭代的对象数组,同时
- react-native - 将背景中的图像和音频转换为 React Native 中的视频文件
- javascript - 在页面上显示用户输入