我在使用api时遇到了麻烦。我得到了一个密码和标题(x-app-id)我在api上获得了很少的文档,但是下面显示了如何使用curl检索数据(来自文档):
curl -X GET "https://r6db.com/api/v2/players?
name=Bomb&platform=ps4&exact=true" -H "accept: application/json" -H "x-app-
id: password"
上方返回有关名为' Bomb'的玩家的信息。在平台上' ps4'有关游戏彩虹六围攻。 exact = true表示名称必须准确。
出于安全原因,无法提供密码。这是我尝试在python中复制上面的另一个帖子,我看到了
import json
import requests
URL = "https://r6db.com/api/v2/players?name=Bomb&platform=ps4&exact=true"
KEY = "password"
headers = {"x-app-id": "application/json"}
params = {
"a-app-id": KEY
}
resp = requests.post(URL + "login/", headers = headers,
data=json.dumps(params))
if resp.status_code != 200:
print('error: ' + str(resp.status_code))
else:
print('Success')
毋庸置疑它不起作用(输出错误404),这可能意味着我甚至无法获得x-app-id作为标题,任何帮助表示感谢。
答案 0 :(得分:0)
我认为在使用模块requests
标题中有两件事要传递:accept: application/json
和x-app-id: password
,你在curl中做得很好。
但是在python中你传递标题"x-app-id": "application/json"
(没有多大意义)并尝试传递"a-app-id": KEY}
作为参数,而不是标题。
如果您将其作为参数传递,它将以https://r6db.com/api/v2/players?name=Bomb&platform=ps4&exact=true&a-app-id=KEY
的形式包含在您的网址中,这不是您想要的。
您已经知道如何在python中传递标题,因此您只需要传递正确的标题:通过accept: application/json
和x-app-id: password
如果我的描述正确,我认为你不必传递数据参数。