首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中使用受密码保护的API

在python中使用受密码保护的API
EN

Stack Overflow用户
提问于 2018-03-12 00:51:41
回答 1查看 167关注 0票数 0

我在使用api时遇到了问题。我得到了一个密码和标题(x-app-id),我得到了关于api的少量文档,但下面展示了如何使用curl检索数据(来自文档):

代码语言:javascript
复制
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中复制上面内容的尝试,这是我看到的另一个帖子

代码语言:javascript
复制
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作为头部,任何帮助感谢感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-03-12 01:43:41

我认为在使用模块requests传递参数时,您搞得有点乱

在头文件中有两件事要传递:accept: application/jsonx-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/jsonx-app-id: password

如果我没记错你的描述,我想你不需要传递数据参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49222537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档