所以我有一个案例面试编程问题,是关于使用 Python 的 API 将信息从源 URL 发送到目标 URL。来自源 URL 的信息纯粹是 JSON 数据,并且准备发送到目标 URL。但为了将 JSON 数据发送到目标 URL,我需要访问令牌和 API 版本标头: 这是 post 请求所需的标头,以便我可以发布 JSON 数据。这是来自公司提供的文档。
我通过使用 get 请求并传入凭证从目标 API 中提取了访问令牌:
Base_URL = "i can't show the URL, but imagine there is a URL here"
client_ID = "abc"
client_SECRET = "123"
api_VERSION = "v3"
grant_TYPE = "client_credentials"
headers = {
'Client-Id': client_ID,
'Client-Secret': client_SECRET,
'Grant-Type':grant_TYPE,
'Api-Version':api_VERSION
}
request = requests.get(Base_URL, headers=headers)
token_info = request.json()
token = token_info.get('access_token')
print(token)
我能够完美地检索令牌。但问题是当我必须使用令牌将数据发布到目标 API 时。
目标 api 需要 access_token,但是当我编写以下代码为 URL 提供访问令牌和 JSON 数据时:
post_URL = "Nope can't show the URL"
headers = {
'Authorization':f'bearer {token}',
'Api-Version':api_VERSION,
'Content-Type': "application/json"
}
for user in user_array:
request = requests.post(post_URL, headers=headers, json=json.dumps(user))
print(request.text)
print(request.text) 给我以下错误消息:{“message”:“无效的访问令牌”}。 谁能帮我找出我做错了什么?难道是发给我case的面试官搞错了?
请尝试使用大写的“承载者”发送请求,如下所示:
'Authorization':f'Bearer {token}'
:)