【问题标题】:Unable to get Python requests with API token无法使用 API 令牌获取 Python 请求
【发布时间】:2019-12-01 13:26:33
【问题描述】:

这是我的代码:

import requests

API 密钥正确

api_key = c87cabcf1b479b807a7b3ba8xxxxxxxxxxxxxx

headers = {    
    'Accept': 'application/json',  
    'Content-Type': 'application/json',
    'Authorization': 'Token token=api_key'
}

从此 API 获取服务列表

r = requests.get('https://myserver/api/v1.1/server/', headers = headers, verify=False)

print(r.json())

print (r.status_code)

我收到以下错误。我检查了我的令牌正确的一个并且没有过期。

r.json() : {'error': {'code': 'error', 'description': '未提供身份验证凭据。'}}

r.status_code:401

我错过了标题中的某个地方。

【问题讨论】:

  • 这里担心的是,我猜你不应该泄露你的 API 密钥
  • 可能是 Authorization 标头的问题,您定义了 Token token="",这可能是错误的。能否请您提供 postman 中的 api,以便我查看 API 并帮助您解决此问题。
  • 你可以使用 CURL 来完成这项工作吗?相同的标题是否适用于 CURL 命令?
  • CURL 它工作,但我需要 python。我用了同样的钥匙。不适用于 python curl -X GET hostname/api/v1.1/filers -k -H 'Accept: application/json' -H 'Authorization: Token 623598ngna9834j3457cb93f1da0' | sed s/","/\\n/g

标签: python-3.x rest api-key


【解决方案1】:

我猜问题可能出在您的第三行标题中。像这样试试。

'Authorization': 'Token ' + api_key

【讨论】:

  • 您好感谢您的回复。我试过了,但我得到了相同的错误标题 = { 'Accept': 'application/json', 'Authorization': 'Token'+ api_key }``` 我的错误:{'error': {'code': 'error', 'description': 'Authentication credentials were not provided.'}}
  • 他的意思是 'Token' + api_key,单词 Token 和 api 密钥之间有一个空格
  • 超级好用,非常感谢。我错过了空间。
猜你喜欢
  • 2011-11-10
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 2013-08-03
相关资源
最近更新 更多