Python requests 图书馆如何使用一个令牌传输授权标题

我有一个请求 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>'//


但这一点不起作用。
</my_token></my_uri></my_token></my_uri></my_token></my_uri></my_token></my_uri></my_token></my_uri>
已邀请:

石油百科

赞同来自:

在 python G。:


/'<my_token>'/


相等的


'<my_token>'


并要求口译员


/'TOK', '<my_token>'/


由于您希望请求使用基本身份验证并创建授权标题,如下所示:


'VE9LOjxNWV9UT0tFTj4K'


这是一个代表性 base64 的
'TOK:<my_token>'


要传达您自己的标题,您将它传递到字典中,如下所示:


r = requests.get/'<my_uri>', headers={'Authorization': 'TOK:<my_token>'}/


</my_token></my_uri></my_token></my_token></my_token></my_token>

莫问

赞同来自:

我正在寻找类似和跌跌撞撞的东西
https://requests.readthedocs.i ... tion/
. 似乎在你提到的第一个版本中


r = requests.get/'<my_uri>', auth=/'<my_token>'//


"auth" 占用两个参数:用户名和密码,因此实际语句必须是


r=requests.get/'<my_uri>', auth=/'<your_username>', '<your_password>'//


在我的情况下,密码不是,所以我在现场留下了第二个参数 auth 空,如下所示:


r=requests.get/'<my_uri', ''="" :="" <="" [="" auth="/'MY_USERNAME'," code]="" div="" 我希望这将有助于某人="">
<div class="answer_text">
它为我工作:


[code]access_token = #yourAccessTokenHere#

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


</div>
<div class="answer_text">
您还可以为整个会话设置标题:


TOKEN = 'abcd0123'
HEADERS = {'Authorization': 'token {}'.format/TOKEN/}

with requests.Session// as s:

s.headers.update/HEADERS/
resp = s.get/'http://example.com/'/


</div>
<div class="answer_text">
请求最初支持仅使用用户传递参数,而不是使用令牌的基本身份验证。

您可以,如果需要,请添加以下类以请求基于基于基于令牌的基本身份验证:


import requests
from base64 import b64encode

class BasicAuthToken/requests.auth.AuthBase/:
def __init__/self, token/:
self.token = token
def __call__/self, r/:
authstr = 'Basic ' + b64encode//'token:' + self.token/.encode/'utf-8'//.decode/'utf-8'/
r.headers['Authorization'] = authstr
return r


然后,要使用它,请按照以下要求进行操作。 :


r = requests.get/url, auth=BasicAuthToken/api_token//


替代方案是为了制定自定义标题,如这里的其他用户所建议的。
</div>
<div class="answer_text">
我在这里创立了,它是正常的 linkedin:
https://auth0.com/docs/flows/g ... -code
所以我的代码 linkedin login 这里:


ref = 'https://api.linkedin.com/v2/me'
headers = {"content-type": "application/json; charset=UTF-8",'Authorization':'Bearer {}'.format/access_token/}
Linkedin_user_info = requests.get/ref1, headers=headers/.json//


</div>
<div class="answer_text">
你可以尝试这样的东西。


r = requests.get/ENDPOINT, params=params, headers={'Authorization': 'Basic %s' % API_KEY}/


</div>
<div class="answer_text">
它为我工作:


r = requests.get/'http://127.0.0.1:8000/api/ray/musics/', headers={'Authorization': 'Token 22ec0cc4207ebead1f51dea06ff149342082b190'}/


我的代码使用自定义令牌。
</div>
</my_uri',></your_password></your_username></my_uri></my_token></my_uri>

帅驴

赞同来自:

它为我工作:


access_token = #yourAccessTokenHere#

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

八刀丁二

赞同来自:

您还可以为整个会话设置标题:


TOKEN = 'abcd0123'
HEADERS = {'Authorization': 'token {}'.format/TOKEN/}

with requests.Session// as s:

s.headers.update/HEADERS/
resp = s.get/'http://example.com/'/

詹大官人

赞同来自:

请求最初支持仅使用用户传递参数,而不是使用令牌的基本身份验证。

您可以,如果需要,请添加以下类以请求基于基于基于令牌的基本身份验证:


import requests
from base64 import b64encode

class BasicAuthToken/requests.auth.AuthBase/:
def __init__/self, token/:
self.token = token
def __call__/self, r/:
authstr = 'Basic ' + b64encode//'token:' + self.token/.encode/'utf-8'//.decode/'utf-8'/
r.headers['Authorization'] = authstr
return r


然后,要使用它,请按照以下要求进行操作。 :


r = requests.get/url, auth=BasicAuthToken/api_token//


替代方案是为了制定自定义标题,如这里的其他用户所建议的。

小姐请别说爱

赞同来自:

我在这里创立了,它是正常的 linkedin:
https://auth0.com/docs/flows/g ... -code
所以我的代码 linkedin login 这里:


ref = 'https://api.linkedin.com/v2/me'
headers = {"content-type": "application/json; charset=UTF-8",'Authorization':'Bearer {}'.format/access_token/}
Linkedin_user_info = requests.get/ref1, headers=headers/.json//

快网

赞同来自:

你可以尝试这样的东西。


r = requests.get/ENDPOINT, params=params, headers={'Authorization': 'Basic %s' % API_KEY}/

冰洋

赞同来自:

它为我工作:


r = requests.get/'http://127.0.0.1:8000/api/ray/musics/', headers={'Authorization': 'Token 22ec0cc4207ebead1f51dea06ff149342082b190'}/


我的代码使用自定义令牌。

要回复问题请先登录注册