小编Ada*_*ron的帖子

Python 请求 - 重定向后的身份验证

我有一个关于重定向后 HTTP 基本身份验证的快速问题。

我正在尝试登录一个网站,出于操作原因,该网站使用 HTTP 302 响应立即将我重定向到中央登录站点。在我的测试中,请求模块在重定向后似乎没有将我的凭据发送到中央登录站点。如下面的代码片段所示,我被迫从响应对象中提取重定向 URL 并再次尝试登录。

我的问题很简单:
有没有办法强制请求在重定向脱离主机后重新发送登录凭据?

出于可移植性的原因,我不想使用 .netrc 文件。此外,该网站的提供商已将 url_login 设为静态,但并未对 url_redirect 做出此类声明。

谢谢你的时间!

代码片段

import requests

url_login = '<url_login>'
myauth = ('<username>', '<password')

login1 = requests.request('get', url_login, auth=myauth)
# this login fails; response object contains the login form information

url_redirect = login1.url
login2 = requests.request('get', url_redirect, auth=myauth)
# this login succeeds; response object contains a welcome message
Run Code Online (Sandbox Code Playgroud)

更新

这是上述通用代码的更具体版本。

  • 第一个request()返回 HTTP 200 响应并在其文本字段中包含表单信息。
  • 第二个在其文本字段中request()返回 HTTP 401 响应'HTTP Basic: Access …

python authentication redirect python-requests

5
推荐指数
2
解决办法
8833
查看次数