python 请求无法识别参数
python requests not recognizing params
我请求 mindbodyapi 使用请求库使用以下代码获取令牌
def get_staff_token(request):
URL = "https://api.mindbodyonline.com/public/v6/usertoken/issue"
payload = {
'Api-Key': API_KEY,
'SiteId': "1111111",
'Username': 'user@xyz.com',
'Password': 'xxxxxxxx',
}
r = requests.post(url=URL, params=payload)
print(r.text)
return HttpResponse('Done')
回复如下
{"Error":{"Message":"Missing API key","Code":"DeniedAccess"}}
但是如果我要求它以下面的方式工作,任何人都可以告诉我,我在上面的代码中做错了什么。
conn = http.client.HTTPSConnection("api.mindbodyonline.com")
payload = "{\r\n\t\"Username\": \"username\",\r\n\t\"Password\": \"xxxxx\"\r\n}"
headers = {
'Content-Type': "application/json",
'Api-Key': API_KEY,
'SiteId': site_id,
}
conn.request("POST", "/public/v6/usertoken/issue", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
在第二个中,您将在 headers 中传递 API 密钥,并在请求的 body 中传递凭据。首先,您在查询字符串中同时发送 API 密钥和凭据,而不是请求 body。参考requests.request()
docs
只需像在您的第二个代码中那样使用两个词典和正确的关键字,我认为它应该可以工作:
def get_staff_token(request):
URL = "https://api.mindbodyonline.com/public/v6/usertoken/issue"
payload = {
'Username': 'user@xyz.com',
'Password': 'xxxxxxxx',
}
headers = {
'Content-Type': "application/json",
'Api-Key': API_KEY,
'SiteId': "1111111",
}
r = requests.post(url=URL, data=payload, headers=headers)
print(r.text)
return HttpResponse('Done')
我请求 mindbodyapi 使用请求库使用以下代码获取令牌
def get_staff_token(request):
URL = "https://api.mindbodyonline.com/public/v6/usertoken/issue"
payload = {
'Api-Key': API_KEY,
'SiteId': "1111111",
'Username': 'user@xyz.com',
'Password': 'xxxxxxxx',
}
r = requests.post(url=URL, params=payload)
print(r.text)
return HttpResponse('Done')
回复如下
{"Error":{"Message":"Missing API key","Code":"DeniedAccess"}}
但是如果我要求它以下面的方式工作,任何人都可以告诉我,我在上面的代码中做错了什么。
conn = http.client.HTTPSConnection("api.mindbodyonline.com")
payload = "{\r\n\t\"Username\": \"username\",\r\n\t\"Password\": \"xxxxx\"\r\n}"
headers = {
'Content-Type': "application/json",
'Api-Key': API_KEY,
'SiteId': site_id,
}
conn.request("POST", "/public/v6/usertoken/issue", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
在第二个中,您将在 headers 中传递 API 密钥,并在请求的 body 中传递凭据。首先,您在查询字符串中同时发送 API 密钥和凭据,而不是请求 body。参考requests.request()
docs
只需像在您的第二个代码中那样使用两个词典和正确的关键字,我认为它应该可以工作:
def get_staff_token(request):
URL = "https://api.mindbodyonline.com/public/v6/usertoken/issue"
payload = {
'Username': 'user@xyz.com',
'Password': 'xxxxxxxx',
}
headers = {
'Content-Type': "application/json",
'Api-Key': API_KEY,
'SiteId': "1111111",
}
r = requests.post(url=URL, data=payload, headers=headers)
print(r.text)
return HttpResponse('Done')