python中的HTTP请求具有基本身份验证

时间:2016-02-18 19:28:00

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

我有一段包含多个GET请求的代码。我有一个简单的if语句来检查状态代码,如果我收到auth的状态代码,则提供401。如何避免为每个请求行都设置单独的if语句?

如果受保护,我希望能够只提供一次凭据,而不必为每次请求提供凭证。

编辑 - 添加了一些代码供参考       response = 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()

1 个答案:

答案 0 :(得分:0)

首先,如果您获得的状态代码为401,则表示您无权使用该资源。

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

  • 您可以使用带有到期时间的Cookie
  • 在网络服务器中使用令牌服务

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