【问题标题】:Requesting an API call that requires an oauth token in python在 python 中请求需要 oauth 令牌的 API 调用
【发布时间】:2019-09-27 14:20:57
【问题描述】:

所以我正在编写一个将数据发布到 url 并获得响应的程序。在邮递员中,它需要一个令牌。因此,当我尝试在 python 中制作它时,它给了我一个响应 [401]。

我遇到的问题是先尝试获取令牌,然后将其传递给我的 post_data 方法。

出于隐私考虑,我将在 URL 和用户名和密码前加上 ***。

import requests
import json
import pprint
import urllib

def get_token():
    tokenurl='***'
    data={
            'grant_type':'password',
            'username':'***',
            'password':'***'
            }
    token=requests.post(tokenurl,data=data)
    print(token)    
get_token()

def post_data():
    url1='***'
    data={"***"
      }

    data_json = json.dumps(data)
    headers = {'Content-type': 'application/json'}
    response = requests.post(url, data=data_json, headers=headers)
    pprint.pprint(response.json())

【问题讨论】:

  • 您应该使用requests docs中描述的推荐身份验证方法之一
  • post_data() 似乎没有调用get_token(),那么它是如何获取令牌的呢?
  • 是的,所以我已经修复了我的获取令牌方法。现在我得到了 json 格式的令牌。我需要对其进行解析并将其加载到 post_data 方法中。

标签: python json oauth python-requests python-requests-html


【解决方案1】:

在 post_data() 函数中,您可以将生成的令牌添加到标题中

headers = {'Content-type': 'application/json','Authorization': 'token ***'}

*** 是你生成的令牌

【讨论】:

  • 所以我在 get_token 方法中得到了 response[200] 。它没有打印令牌。
  • 你可以试试打印(token.text)
  • 所以它给了我带有 json 格式的其他信息的令牌。我只需要解析它并取出令牌。
猜你喜欢
  • 2018-04-05
  • 1970-01-01
  • 2019-10-02
  • 2015-04-19
  • 2011-04-25
  • 2012-06-22
  • 2021-12-08
  • 2012-03-23
  • 2020-12-10
相关资源
最近更新 更多