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

我正在研究 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_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 响应


拉风的咖菲猫
浏览 105回答 2
2回答

侃侃尔雅

您需要使用标题:>>> import base64>>> api_new = base64.b64encode(api_key.encode("UTF-8"))>>>&nbsp;>>> r = requests.get( issue, header="Authorization: Basic {}'.format(api_new))

蝴蝶刀刀

requests auth param 负责 http 基本认证。根据我在您的代码中看到的内容,您不想执行身份验证,而是要修改标头。这是通过将 headers dict 传递headers = {'Authorization': api_new}给 requests as 来完成的r = requests.get( issue, headers=headers)。完整的代码是import base64import requestsapi_key = "ABCDEFGH"issue = '<helpshift_url>'api_new = base64.b64encode(api_key.encode("UTF-8"))headers = {'Authorization': api_new}r = requests.get( issue, headers=headers)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python