我在使用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"上面返回了平台'ps4‘上名为'Bomb’的玩家的信息,该平台与游戏《彩虹六号围攻》有关。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作为头部,任何帮助感谢感谢。
发布于 2018-03-12 01:43:41
我认为在使用模块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的形式包含在您的url中,而这不是您想要的。
您已经知道如何在python中传递标头,因此只需传递正确的标头:传递accept: application/json和x-app-id: password
如果我没记错你的描述,我想你不需要传递数据参数。
https://stackoverflow.com/questions/49222537
复制相似问题