4

我在尝试从旧版本的 python 请求(0.14)切换到新版本(1.1、1.2 等等)时遇到问题。问题是我们有一个使用以下库在 Twitter 上发布图像的系统:https ://github.com/maraujop/requests-oauth

主要问题在于这行代码:

# This is taken from the documentation of the library mentioned above
session = requests.session(hooks={'pre_request': oauth_hook})
session.post(...)

由于 Session 构造函数不再接受 hooks 参数。我发现 post 方法虽然接受了 hooks 参数,并像这样修改了代码:

session = requests.session()
session.post(..., hooks={'pre_request': oauth_hook})

这比以前更好,但是 pre_request 在新版本的 python-requests 中不再被接受(你可以在 requests 0.14 的文档中找到这个钩子,但在任何新版本中都没有)。有人可以帮忙吗?

4

1 回答 1

3

您需要自己创建请求对象,将其传递给钩子,然后调用.prepare()它:

import requests

request = requests.Request('POST', url, ...)
request = oauth_hook(request)
prepared = request.prepare()

然后发送:

session = requests.session()
resp = session.send(prepared)
于 2013-04-02T13:33:27.507 回答