如何连接需要用户名和密码的 API
How to connect with an API that requires username and password
我正在尝试连接到 api,如 http://api.instatfootball.com/ 中所述,它应该类似于以下 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"}
您需要使用 URL 创建一个 http-request。这将 return 响应正文中的请求数据。根据 [format] 参数,您需要将数据从 xml / json 解码为本机 Python 对象。
正如 rdas 已经评论的那样,您可以使用 python (https://requests.readthedocs.io/en/master/) 的请求库。您还会在那里找到一些代码示例。它还会正确解码 JSON 数据。
如果您想尝试一下 API,您可以使用像 Postman 这样的工具来测试和调试您的请求。 (https://www.postman.com/)
此 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)
我正在尝试连接到 api,如 http://api.instatfootball.com/ 中所述,它应该类似于以下 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"}
您需要使用 URL 创建一个 http-request。这将 return 响应正文中的请求数据。根据 [format] 参数,您需要将数据从 xml / json 解码为本机 Python 对象。
正如 rdas 已经评论的那样,您可以使用 python (https://requests.readthedocs.io/en/master/) 的请求库。您还会在那里找到一些代码示例。它还会正确解码 JSON 数据。
如果您想尝试一下 API,您可以使用像 Postman 这样的工具来测试和调试您的请求。 (https://www.postman.com/)
此 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)