【问题标题】:How to attach .netrc file to python requests get method?如何将 .netrc 文件附加到 python 请求获取方法?
【发布时间】:2021-02-25 14:19:12
【问题描述】:

我正在尝试使用 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 文件而不是使用授权方法。

我是否可以将此文件附加到我的登录请求中?

非常感谢

【问题讨论】:

    标签: python curl python-requests .netrc


    【解决方案1】:

    如果您的 .netrc 文件存在于您的主目录中,当未提供 auth 参数时,python 请求将自动检查该文件以获取给定机器(主机名)下的凭据。

    来自请求文档https://2.python-requests.org/en/master/user/authentication/#netrc-authentication

    如果没有使用 auth 参数给出身份验证方法,Requests 将尝试从用户的 netrc 文件中获取 URL 主机名的身份验证凭据。 netrc 文件覆盖使用 headers= 设置的原始 HTTP 身份验证标头。

    如果找到主机名的凭据,则使用 HTTP 基本身份验证发送请求。

    假设您的主目录中有一个有效的 .netrc 文件,以下内容应该可以工作。 https://www.labkey.org/Documentation/wiki-page.view?name=netrc

    login = requests.get(url)
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-08
        • 1970-01-01
        • 2019-05-23
        • 2021-06-04
        • 2017-04-30
        • 1970-01-01
        • 2018-11-12
        • 2022-12-31
        相关资源
        最近更新 更多