【问题标题】:HTTP requests in python with basic authentication具有基本身份验证的python中的HTTP请求
【发布时间】:2016-02-18 19:28:00
【问题描述】:

我有一段代码,其中包含多个 GET 请求。我有一个简单的 if 语句来检查状态代码并在收到状态代码 401 时提供 auth。如何避免我拥有的每个请求行都有单独的 if 语句?

如果证书受到保护,我希望能够只提供一次凭据,而不是每次请求都提供它。

编辑 - 添加了一些代码供参考 响应 = requests.get(self.uri + '/v2/apps')

    if (response.status_code == 401):
        print("It appears that your marathon instance is protected, please enter your username and password")
        usr = input("Username: ")
        pwd = getpass.getpass("Password: ")
        response = requests.get(self.uri + '/v2/apps', auth=(usr,pwd)).json()

【问题讨论】:

  • 给我们看一些代码。你的问题很模糊。
  • 我仍然不清楚你想在这里实现什么,但如果你不想每次都避免输入用户名和密码,我建议你将它们存储在这个之外的变量中范围。但更好的解决方案是在.py.json 中创建一个配置文件,并在初始化期间从那里读取它。

标签: python http get python-requests basic-authentication


【解决方案1】:

首先,如果您收到 401 状态代码,则表示您无权使用该资源。

其次,您有不同的选项来验证客户端一次。通常,我建议研究使用 HTTPS 传输数据。您可以使用:

  • 您可以使用有期限的 cookie
  • 在您的网络服务器中使用令牌服务

已经存在多种身份验证标准(例如 SAML、OAuth、OpenId 等),尽量不要重新发明轮子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 2019-09-11
    • 2016-09-29
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    相关资源
    最近更新 更多