Python requests token for REST API不断返回401,无法确定正确的令牌形式

2024-09-27 21:34:12 发布

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

我在Powershell中使用了它,但我正在尝试找出如何在Python中使用它。在我刚用过的Powershell里

$webclient.Headers.Add("Authorization", "Basic $auth")

将我的用户名和密码组合的b64Val传递给$auth,然后获取我的令牌字符串,并使用Authorization和Basic以相同的格式再次传递它,其中$auth包含我的长令牌字符串。你知道吗

然而,我一直在用python返回401,试图找出如何做同样的事情。。这是我的示例python代码,第一个获取我的\u令牌的请求可以正常工作。。你知道吗

password = 'myPassword'
usrPass = "admin:" + password

b64Val = base64.b64encode(usrPass.encode("ascii")).decode("ascii")
My_token=requests.get("https://10.10.1.2/api/login",headers={"Authorization" : "Basic %s" % b64Val}, verify=False)

token_contents = My_token.content.decode("utf-8").replace('"', '')

#token_test = 'Token ' + token_contents
token_test = 'token ' + token_contents
#token_test = 'TOK:' + token_contents
#token_test = 'Basic ' + token_contents
#token_test = 'token=' + token_contents

header = {'Authorization' : token_test}

url = 'https://10.10.1.2/api/types/instances'
r = requests.get(url, headers=header, verify=False)

查看我的注释行我尝试了所有不同类型的令牌设置。你知道吗

我的想法是,我必须将令牌从字节转换为字符串,并从中删除双引号_令牌.内容原值属性看起来是这样的。你知道吗

b'"YWRtaW46MTU2OTE4NzkwMgg3NzpjZDdlZWEyNmI2NDJmOTY0ZmI5ZGQ3YzBiNnI2ZTNlZQ"'

只是想弄清楚我对使用myu token对象的误解,该对象工作正常并让我登录,但是在我尝试执行的下一个请求中返回token。谢谢

[更新和修复]

多亏了斯托夫尔的评论,我学到了更多,看到了自己的错误。我想得太多了,使它变得比需要的更复杂;)。我只需要亲吻和只是基本的身份验证与我的令牌内容哈哈

r\u测试=请求。获取('https://10.10.1.2/api/types/instances',auth=(“admin”,token\u contents),verify=False)


Tags: 字符串httpstesttokenauthapifalsebasic

热门问题