gpt4 book ai didi

python - 使用 requests-oauthlib 设置 HTTP User-Agent header

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:56 24 4
gpt4 key购买 nike

我正在使用 requests-oauthlib用于从 OAuth (v1) 提供程序获取请求 token 的库。

oauth = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET,
signature_method=SIGNATURE_HMAC,
signature_type=SIGNATURE_TYPE_AUTH_HEADER)

resp = oauth.fetch_request_token(url=REQUEST_TOKEN_URL)

我想发送一个带有请求 token 获取请求的自定义 User-Agent header ,并包含一些联系信息,以防我的脚本出现任何问题。这能做到吗?

最佳答案

可以将客户端类传递给 OAuth1Session 构造函数。来自相关文件中的文档 block :

"""
:param client_class: A subclass of `oauthlib.oauth1.Client` to use with
`requests_oauthlib.OAuth1` instead of the default
"""

在 oauthlib.oauth1.Client 类中,_render(self, request, formencode=False, realm=None) 方法似乎负责准备请求。由于不相关的标题 don't impact创建请求签名的基本字符串,添加新 header /更改现有 User-Agent header 不应导致签名以任何方式更改。

因此,我们可以创建一个自定义客户端类,覆盖 _render 方法,并在添加 header 后调用父类中的实现:

class CustomClient(Client):
def _render(self, request, formencode=False, realm=None):
request.headers['User-Agent'] = "FooClient/1.0"
return super()._render(request, formencode, realm)

然后实例化 OAuth1Session 的代码只需要引用上面的类:

oauth = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET,
signature_method=SIGNATURE_HMAC,
signature_type=SIGNATURE_TYPE_AUTH_HEADER, client_class=CustomClient)

关于python - 使用 requests-oauthlib 设置 HTTP User-Agent header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33426717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com