get(url).status_code中的http代码不同,get(url).history中的http代码不同

问题描述 投票:-1回答:2

[url='http://example.com/hey.php?redirect=http://example.com',当我使用get(url).status_code之类的代码在python3中检查上述URL的http状态代码时,将200作为http代码。但是,当我键入get(url).history时,会得到类似[<Response [302]>]的信息。您能告诉我这种情况吗?!

python python-3.x http url
2个回答
0
投票

您是否已勾选requests documentation?当您获得资源时,服务器可能会像“嘿,今天可以在另一个URL上找到该资源。请检查是否要”那样对客户端说。因此,您的客户转到新位置,并最终到达所需的资源。

如果要跟踪此类重定向,请使用historyrequest方法。如果要更改客户端的行为,以使其现在“不希望”在另一个建议的位置查找资源,则可以在allow_redirects=False方法参数(默认为get)中设置true以获取要求)。

在您的情况下,[<Response [302]>]表示启用了以下重定向,并且您的客户端在达到所需资源之前遵循了重定向一次。


0
投票

这是带有重定向URL的默认request.get()行为。

如果您请求返回重定向响应的URL,则requests.get()将自动遵循重定向。

status_code是最终请求的结果,history是此过程中的所有重定向步骤。

如果您不希望出现这种情况,请使用allow_redirects=False关键字arg。

© www.soinside.com 2019 - 2024. All rights reserved.