簡體   English   中英

python 請求無法識別參數

[英]python requests not recognizing params

我正在請求 mindbodyapi 使用 requests 庫使用以下代碼獲取令牌

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"))

在第二個中,您在標頭中傳遞 API 密鑰,並在請求正文中傳遞憑據。 首先,您將 API 密鑰和憑據一起發送到查詢字符串中,而不是請求正文中。 請參閱requests.request()文檔

只需使用第二個代碼中的兩個字典和正確的關鍵字,我認為它應該可以工作:

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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM