【问题标题】:requests-oauthlib custom paramsrequests-oauthlib 自定义参数
【发布时间】:2014-09-18 09:25:08
【问题描述】:

我想知道是否有一种方法可以将自定义值添加到 requests-outhlib 中的 oauth 请求中。这是我必须获取令牌的代码,但是我想再添加两个参数。

def login_token(self):
    if self.signature_method == 'RSA-SHA1':
        prepare = OAuth1(self.consumer_key, client_secret=self.consumer_secret, callback_uri=self.call_backuri,
                         signature_method='RSA-SHA1',
                         rsa_key=open(self.rsa_location).read(), signature_type='query', verifier=None,)
    else:
        prepare = OAuth1(self.consumer_key, client_secret=self.consumer_secret, callback_uri=self.call_backuri,
                         signature_method='HMAC-SHA1', signature_type='query')
    request = json.loads(requests.post(self.base_url + 'login_token/', auth=prepare).text)
    self.request_token = request['token']['oauth_token']
    return str(self.request_token)

有什么想法吗?我环顾四周,但找不到很多东西

【问题讨论】:

  • 这两个参数会去哪里?作为请求的额外标头?
  • 我希望它们作为查询进入 url,因为现在来自 python 的标头不能很好地与服务器配合使用。我向其发出请求的服务器有很多内部政治,因此不会发生对其进行更改的情况。到目前为止,我只能通过传入 url 来让事情正常工作
  • 然后只需将它们添加到带有params={'param1': value1, 'param2': value2} 的POST 中,它们将用作URL 中的查询参数。

标签: python python-2.7 oauth python-requests


【解决方案1】:

如果要向 URL 添加参数,请使用 params 参数:

extra_params = {'param1': value1, 'param2': value2}
request = requests.post(self.base_url + 'login_token/',
                        params=extra_params,
                        auth=prepare).json()

请注意,requests 支持使用 response.json() method 本地加载 JSON。此方法使用 JSON-RFC 特定的启发式方法来确定正确的字符集(而 .text 可能会出错)。

【讨论】:

  • 有效,我已切换到使用本机方式。我不认为使用 params= 会起作用,但感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2014-04-26
  • 2017-06-28
  • 1970-01-01
  • 2020-06-05
  • 2017-07-09
  • 2018-01-27
  • 2020-12-10
  • 2011-11-09
相关资源
最近更新 更多