为了账号安全,请及时绑定邮箱和手机立即绑定

具有api令牌基本身份验证的curl命令的python等效项

具有api令牌基本身份验证的curl命令的python等效项

拉风的咖菲猫 2022-03-09 21:09:39
我正在研究 helpshift api,并试图找到一个准确的请求调用,该调用将返回问题元数据。我尝试了很多例子,但它总是返回 401 状态。但是我能够让 curl 命令工作提供给我的东西是:apikey,url,return 是 json 响应工作 CURL 命令是:curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic <base64_encoded_version_of_api_key_for_basic_auth>' '<helpshift_url>'我尝试过的事情如下:>>> api_key = "ABCDEFGH">>> issue = '<helpshift_url>'>>> >>> r = requests.get( issue, auth = ( api,"" ))>>> r.status_code401>>> >>> import base64>>> api_new = base64.b64encode(api_key.encode("UTF-8"))>>> >>> r = requests.get( issue, auth = ( api_new,"" ))>>> r.status_code401我想要得到的是打印的 json 响应
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您需要使用标题:


>>> import base64

>>> api_new = base64.b64encode(api_key.encode("UTF-8"))

>>> 

>>> r = requests.get( issue, header="Authorization: Basic {}'.format(api_new))


查看完整回答
反对 回复 2022-03-09
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

requests auth param 负责 http 基本认证。根据我在您的代码中看到的内容,您不想执行身份验证,而是要修改标头。


这是通过将 headers dict 传递headers = {'Authorization': api_new}给 requests as 来完成的r = requests.get( issue, headers=headers)。


完整的代码是


import base64

import requests


api_key = "ABCDEFGH"

issue = '<helpshift_url>'


api_new = base64.b64encode(api_key.encode("UTF-8"))

headers = {'Authorization': api_new}


r = requests.get( issue, headers=headers)


查看完整回答
反对 回复 2022-03-09
  • 2 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信