使用带有Sitescout API的python模块请求时的响应状态代码400

时间:2015-08-07 23:27:21

标签: python python-requests http-error

我有客户端ID和客户端密码,并且正在尝试按照Sitescout's api docs生成身份验证令牌。我正在使用python模块请求,并且我收到了400状态代码,又称格式错误的请求,但我似乎无法弄清楚原因。

我的代码:

import requests

url = "https://api.sitescout.com/oauth/token"
headers = { 
            "Host": "api.sitescout.com",
            "Authorization": "Basic YmVldGhvdmVuOmxldG1laW4=",
            "Content-Type": "application/x-www-form-urlencoded",
            "Accept": "application/json",
            "Content-Length": "41"
        }

# Do the HTTP request
response = requests.post(url, headers=headers)

response.status_code

这是文档中提供的伪造的base64授权标头,因此这个代码片段会返回401错误,也就是未经授权(我当然有自己的身份验证)。

有谁能告诉我这有什么问题?

1 个答案:

答案 0 :(得分:1)

已经解决了。我没有放grant_type=client_credentials,当添加时,返回200。

文档说“可选地,您可以添加表单参数范围以指示您请求访问的范围;范围值必须是空格分隔的(例如,STATS AUDIENCES)。”但是“& scope = STATS”参数是可选的,而不是所有参数。这个例子使我感到困惑。

现在我的代码读取

...

params = {  "grant_type" : "client_credentials" }

response = requests.post(url, headers=headers, params=params)

...

有效。