我正在研究helpshift api,并试图找到一个准确的请求调用,该请求将返回问题Issue元数据。我已经尝试了许多示例,但它始终返回401状态。
但是我能够使curl命令起作用
提供给我的是:apikey,url,返回的是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_code
401
>>>
>>> import base64
>>> api_new = base64.b64encode(api_key.encode("UTF-8"))
>>>
>>> r = requests.get( issue, auth = ( api_new,"" ))
>>> r.status_code
401
我想得到的是打印出JSON响应
答案 0 :(得分:0)
requests auth param负责HTTP基本身份验证。从我在您的代码中看到的,您想要修改标头而不是执行auth。
这是通过将标头字典headers = {'Authorization': api_new}
作为请求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)
答案 1 :(得分:0)
您需要使用标题:
>>> import base64
>>> api_new = base64.b64encode(api_key.encode("UTF-8"))
>>>
>>> r = requests.get( issue, header="Authorization: Basic {}'.format(api_new))