通过请求库调用API获取访问令牌
Calling API through requests Library to get access token
我正在尝试获取特定 API 的访问令牌,curl 命令如下:
curl --location --request POST 'https://example.com/oauth/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=abcd' \
--data-urlencode 'client_secret=abc' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=us' \
--data-urlencode 'scope=a' \
--data-urlencode 'password=abc'
我在python中有以下代码:
url = 'https://example.com/oauth/connect/token'
body = {'client_id':'abcd',
'client_password':'abc',
'grant_type':'password',
'username':'us',
'scope':'a',
'password':'abc'}
headers = {'Content-Type':'application/x-www-form-urlencoded'}
response = requests.post(url, data=body, headers=headers, verify=False)
print(response,response.content)
我一直收到 <Response [400]> b'{"error":"invalid_client"}'
错误。
我相信我已经尝试了几乎所有的方法,但我迷路了。如果我遗漏了一些非常简单的东西,请告诉我。
我注意到,您的 curl
命令使用 client_secret
,而您的 requests
命令使用 client_password
.
为了调试此类请求,我推荐像 https://www.toptal.com/developers/postbin/ 这样的免费页面,您可以在其中发送 curl
和 requests
消息并比较到达端点的内容。
我正在尝试获取特定 API 的访问令牌,curl 命令如下:
curl --location --request POST 'https://example.com/oauth/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=abcd' \
--data-urlencode 'client_secret=abc' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username=us' \
--data-urlencode 'scope=a' \
--data-urlencode 'password=abc'
我在python中有以下代码:
url = 'https://example.com/oauth/connect/token'
body = {'client_id':'abcd',
'client_password':'abc',
'grant_type':'password',
'username':'us',
'scope':'a',
'password':'abc'}
headers = {'Content-Type':'application/x-www-form-urlencoded'}
response = requests.post(url, data=body, headers=headers, verify=False)
print(response,response.content)
我一直收到 <Response [400]> b'{"error":"invalid_client"}'
错误。
我相信我已经尝试了几乎所有的方法,但我迷路了。如果我遗漏了一些非常简单的东西,请告诉我。
我注意到,您的 curl
命令使用 client_secret
,而您的 requests
命令使用 client_password
.
为了调试此类请求,我推荐像 https://www.toptal.com/developers/postbin/ 这样的免费页面,您可以在其中发送 curl
和 requests
消息并比较到达端点的内容。