2013-04-02 100 views
3

我遇到了一个问题,试图从古代版本的python-requests(0.14)切换到较新的版本(1.1,1.2)。问题是,我们有一个系统使用下列库在Twitter上的哪些文章图片:https://github.com/maraujop/requests-oauthPython请求库预先请求钩子

的主要问题是这行代码:

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

由于Session构造函数不再接受挂钩参数。我发现,POST方法接受挂钩的说法,但并chagned这样的代码:

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

这是比以前好,但是pre_request在Python-请求的较新版本不再接受(你可以找到这个挂钩请求0.14的文档,但不包含任何新版本)。有人可以帮助吗?

+1

我相信作为1.0,他们已经删除大多数'钩',但我不确定比这更多。在1.0版本历史中简要提及删除https://pypi.python.org/pypi/requests – TankorSmash

+0

您也可以考虑使用受支持的内容,例如:https://github.com/requests/requests-oauthlib –

回答

3

您需要创建Request对象自己,传递到钩子,然后调用.prepare()它:

import requests 

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

然后发送:

session = requests.session() 
resp = session.send(prepared)