Python请求库如何使用单个令牌传递授权头

2024-05-13 20:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个请求URI和一个令牌。如果我使用:

curl -s "<MY_URI>" -H "Authorization: TOK:<MY_TOKEN>"

等等,我得到一个200并查看相应的JSON数据。 所以,我安装了请求,当我试图访问这个资源时,我得到了403,可能是因为我不知道传递这个令牌的正确语法。有谁能帮我弄清楚吗? 这就是我所拥有的:

import sys,socket
import requests

r = requests.get('<MY_URI>','<MY_TOKEN>')
r. status_code

我已经试过了:

r = requests.get('<MY_URI>',auth=('<MY_TOKEN>'))
r = requests.get('<MY_URI>',auth=('TOK','<MY_TOKEN>'))
r = requests.get('<MY_URI>',headers=('Authorization: TOK:<MY_TOKEN>'))

但这些都不管用。


Tags: 数据importtokenauthjsongetmysys
3条回答

这对我有效:

access_token = #yourAccessTokenHere#

result = requests.post(url,
      headers={'Content-Type':'application/json',
               'Authorization': 'Bearer {}'.format(access_token)})

我在找类似的东西,发现了this。在你提到的第一个选项中

r = requests.get('<MY_URI>', auth=('<MY_TOKEN>'))

“auth”有两个参数:username和password,因此实际语句应该是

r=requests.get('<MY_URI>', auth=('<YOUR_USERNAME>', '<YOUR_PASSWORD>'))

在我的例子中,没有密码,所以我将auth字段中的第二个参数留空,如下所示:

r=requests.get('<MY_URI', auth=('MY_USERNAME', ''))

希望这对某人有帮助:)

在python中:

('<MY_TOKEN>')

相当于

'<MY_TOKEN>'

请求解释

('TOK', '<MY_TOKEN>')

当您希望请求使用基本身份验证并创建类似这样的授权头时:

'VE9LOjxNWV9UT0tFTj4K'

它是'TOK:<MY_TOKEN>'的base64表示

为了传递你自己的标题,你需要像这样输入字典:

r = requests.get('<MY_URI>', headers={'Authorization': 'TOK:<MY_TOKEN>'})

相关问题 更多 >