【问题标题】:How to connect with an API that requires username and password如何连接需要用户名和密码的 API
【发布时间】:2020-12-09 01:12:47
【问题描述】:

我正在尝试按照http://api.instatfootball.com/ 中的说明连接到api,它应该类似于以下get /[lang]/data/[action].[format]?login=[login]&pass=[pass]。我知道我需要使用的 [lang]、[action] 和 [format],我也有登录名和密码,但不知道如何访问 API 中的信息。

如果我写如下代码:

import requests

r = requests.get('http://api.instatfootball.com/en/data/stat_params_players.json', auth=('login', 'pass'))
r.text

通过实际登录并通过,我得到以下输出:

{"status":"error"}

【问题讨论】:

标签: python api authentication python-requests passwords


【解决方案1】:

此 API 需要通过不安全的连接将身份验证作为参数,因此请注意,API 部分非常缺乏这一点。

import requests

username = 'login'
password = 'password'
base_url = 'http://api.instatfootball.com/en/data/{endpoint}.json'


r = requests.get(base_url.format(endpoint='stat_params_players'), params={'login': username, 'pass': password})
data = r.json()
print(r.status_code)
print(r.text)

【讨论】:

    【解决方案2】:

    您需要使用 URL 发出 http 请求。这将在响应正文中返回请求的数据。根据 [format] 参数,您需要将数据从 xml / json 解码为原生 Python 对象。

    正如 rdas 已经评论的那样,您可以使用 Python 的请求库 (https://requests.readthedocs.io/en/master/)。您还将在那里找到一些代码示例。它还将正确解码 JSON 数据。

    如果您想稍微使用一下 API,可以使用 Postman 之类的工具来测试和调试您的请求。 (https://www.postman.com/)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-02
      • 2016-06-06
      • 2011-03-24
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多