【问题标题】:Setting Token Header in Python Requests在 Python 请求中设置令牌标头
【发布时间】:2019-11-26 10:18:18
【问题描述】:

我正在使用 curl 使用以下命令调用我的 REST 服务

export TOKEN= '<random>'
curl -X "GET" -H "Content-Type:application/json" -H "Authorization:Bearer ${TOKEN}" http://my-server.com

我正在尝试使用 Python 的请求库映射相同的代码

import requests

url = 'https://httpbin.org/bearer'
headers = {'Authorization': 'Bearer', 'Content-Type':'application/json'}

r = requests.get(url, headers=headers)
print(r.status_code)

我的问题是,如何在代码中设置我的 TOKEN 值?

【问题讨论】:

  • Python 有字符串插值,就像你的 shell 一样。例如f'Bearer {token}",将变量token的值放入标题Authorization的字符串值中。
  • 或者只是使用连接,所以'Bearer ' + token。这些都不是特定于 Python 请求的,这只是 只是 字符串操作。
  • 您是否(至少部分地)询问如何从 Python 中的 TOKEN 环境变量中获取 token 的值?
  • 哦,所以只使用 'Authorization': 'Bearer' + 就可以了?
  • 是的..谢谢它的工作。我正在尝试 {'Authorization': 'Bearer='}。对不起这个愚蠢的问题。我的想法完全失去了..

标签: python python-3.x


【解决方案1】:

授权令牌可以以dict形式添加到headers参数中,如下所示:

hed = {'Authorization': 'Bearer ' + auth_token,
       'Content-Type': 'application/json'}
r = requests.post(url=url, headers=hed)

我建议阅读此https://2.python-requests.org/en/master/user/quickstart/

【讨论】:

  • 我认为对此有一些特殊处理..让我再试一次。谢谢。
  • 好的,如果解决了您的问题,请将答案标记为“已接受”
【解决方案2】:

只需将此行替换为您当前的行

headers = {'Authorization': 'Bearer ' + token, 'Content-Type':'application/json'}

现在取决于您从哪里获取令牌,但要包含令牌就是这样。

【讨论】:

    猜你喜欢
    • 2018-10-13
    • 2017-11-29
    • 2019-02-20
    • 2018-06-29
    • 2017-01-18
    • 2013-07-07
    • 2019-06-04
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多