我正在研究 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))
蝴蝶刀刀
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)
添加回答
举报
0/150
提交
取消