curl 如何将.netrc文件附加到python请求的get方法中?

j5fpnvbx  于 2023-11-19  发布在  .NET
关注(0)|答案(2)|浏览(164)

我试图使用python请求登录到一个网站。通常我在cmd中使用curl。

curl -c <path/urs_cookies.txt> -n -L https://site_FileUpload/login

字符串
其中-n在cwd中搜索包含我的用户名和密码的.netrc文件。
但是在python中使用这样做是不起作用的。

login = requests.get(url, auth=(username, password))


我相信这是因为我需要使用我的.netrc文件,而不是使用授权方法。
我可以将此文件附加到我的登录请求中吗?
非常感谢

xa9qqrwz

xa9qqrwz1#

如果你的.netrc文件存在于你的主目录中,当没有提供auth参数时,python请求将自动检查该文件在给定机器(主机名)下的凭据。
来自请求文档:https://requests.readthedocs.io/en/latest/user/authentication/?highlight=.netrc#netrc-authentication
如果auth参数中没有提供身份验证方法,则Requests将尝试从用户的netrc文件中获取URL主机名的身份验证凭据。netrc文件将覆盖设置为headers=的原始HTTP身份验证标头。
如果找到主机名的凭据,则使用HTTP Basic Auth发送请求。
假设您的主目录中有一个有效的.netrc文件,下面的操作应该可以正常工作。https://www.labkey.org/Documentation/wiki-page.view?name=netrc

login = requests.get(url)

字符串

7lrncoxx

7lrncoxx2#

通过python请求库请求时不需要传递.netrc文件。唯一的要求是.netrc文件应该在您的主目录中。我曾经通过python触发一个数据库作业,它需要.netrc文件中的所有凭据。我只是使用requests.post(url, data)并将我的.netrc文件保存在主目录中,它就可以工作了。

相关问题