2013-04-02 141 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)