首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么比勒不在请求授权头中工作?

为什么比勒不在请求授权头中工作?
EN

Stack Overflow用户
提问于 2017-01-13 09:40:24
回答 1查看 21K关注 0票数 2

我在通过python请求将授权令牌发送到Bearer来嵌套API时遇到了问题:

代码语言:javascript
运行
复制
curl https://developer-api.nest.com -H "Authorization: Bearer c.123"
-H "Content-Type: application/json"

不过,效果很好:

代码语言:javascript
运行
复制
nest_url = "https://developer-api.nest.com"
headers = {'Authorization': str('Bearer ' + token), 'Content-type': 'application/json'}
print(headers)
nest_data_req = requests.get(nest_url, headers=headers)

印刷如下:

{“内容-类型”:“应用程序/json”,“授权”:“无记名c.123”}

在401未经授权的情况下失败,据我所知,他们试图提出同样的请求,那么为什么curl (以及邮递员)和python请求失败呢?

下图显示了在邮递员中的相同工作:

更新:

因此,这段代码每10次运行1次(另一个9+给我401个未经授权):

代码语言:javascript
运行
复制
 url = "https://developer-api.nest.com/"
    auth_t = token.encode("ascii", "ignore")
    headers = {
        'authorization': "Bearer " + auth_t,
        'content-type': "application/json",
        'cache-control': "no-cache",
    }
    response = requests.request("GET", url, headers=headers)
    print(response.text)

如果我在邮递员中按submit键,它每次都能正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-14 00:10:34

这是nest的API重定向的结果,所以您可以认为这是一个错误--因为头被从重定向请求中移除,并且标头应该在会话中。或者是他们试图解析CVE时的“特征”。

下面是一种处理这个问题的原型方法:

代码语言:javascript
运行
复制
def get_nest_data(token):
    url = "https://developer-api.nest.com/"
    auth_t = token.encode("ascii", "ignore")
    headers = {
        'authorization': "Bearer " + auth_t,
        'content-type': "application/json",
    }

    try:
        init_res = requests.get('https://developer-api.nest.com', headers=headers, allow_redirects=False)
        if init_res.status_code == 307:
            api_response = requests.get(init_res.headers['Location'], headers=headers, allow_redirects=False)
            if  api_response.status_code == 200:
                return api_response.json()
        elif init_res.status_code == 200:
            return init_res.json()
    except Exception as ce:
        print(ce)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41631500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档