如何使用密钥而不是基本的身份验证用户名和密码与Python连接到RESTful API?

2024-04-20 06:10:53 发布

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

我是编程新手,被要求接管一个项目,我需要在其中更改当前用于连接到ver1restfulapi的Python代码。该公司已经切换到他们的API版本2,现在需要id和密钥来进行身份验证,而不是基本的用户名和密码。适用于Ver 1 API的旧代码如下所示:

import requests
import simplejson as json
import pprintpp as pprint

#API_Ver1 Auth
USER = 'username'
PASS = 'password'
url = 'https://somecompany.com/api/v1/groups'
s = requests.Session()
s.auth = (USER, PASS)

r = json.loads(s.get(url).text)
groups = r["data"]

我可以使用这样的卷曲字符串通过终端连接到Ver2 API:

卷曲-v-X GET-H“X-ABC-API-ID:X-X-X-X-X-X”-H“X-ABC-API-KEY:nnnnnnnnnnnnnnnnnnnnn” -H“X-DE-API-ID:X”-H“X-DE-API-KEY:nnnnnnnnnnnnnnnnnnnnnnnnnnnn” “https://www.somecompany.com/api/v2/groups/

我已经搜索过了,但是没有找到一种方法从cURL字符串中获取id和键,从而允许使用Python访问Ver 2 API。感谢您考虑帮助noob完成此代码更改!


Tags: 代码httpsimportcomapiidjsonurl
1条回答
网友
1楼 · 发布于 2024-04-20 06:10:53

您可以将HTTP头添加到请求中

headers = {
    'X-ABC-API-ID': 'x-x-x-x-x',
    'X-ABC-API-KEY': 'nnnnnnnnnnnnnnnnnnnnnnn',
    'X-DE-API-ID': 'x',
    'X-DE-API-KEY': 'nnnnnnnnnnnnnnnnnnnnnnnn'
}
r = requests.get('https://www.somecompany.com/api/v2/groups/', headers=headers)

相关问题 更多 >