可以攻入requests
hooks system代替,然後用它來跟蹤響應和他們的要求:
from requests import hooks
_orig_default_hooks = hooks.default_hooks
def my_default_hooks():
hooks = _orig_default_hooks()
hooks['response'].append(response_hook)
return hooks
hooks.default_hooks = my_default_hooks
# requests.models is imported by the requests package, so we need to ensure it's reference
# to default_hooks is updated too.
import requests.models
requests.models.default_hooks = my_default_hooks
def response_hook(r, **kw):
req = r.request
print req.headers
的reqeuests.hooks.default_hooks()
函數被調用爲每一個請求創建,並通過注入自己response
事件掛接你得到每個收到的答覆。響應具有.request
屬性,這是PreparedRequest
實例,您可以在其中找到要查看的.headers
和.body
屬性。
您應該花一些時間來研究Requests API;如果您閱讀了rauth和Requests文檔,我注意到您可以回答自己的很多問題。例如,在Requests文檔中充分討論了從'Response'對象訪問'PreparedRequest'對象的情況。 – maxcountryman 2013-05-02 16:10:39
當然你是對的。如果我有時間閱讀Requests,urrlib3和rauth(以及任何其他依賴項)的文檔,請記住所有這些細節,並將它們應用於我的特定情況,決定如何解決我的特定問題,我會自己解決這個問題。哎呀,我永遠不需要Stackoverflow!我對這些請求內容甚至沒有興趣:我只是試圖讓linkedin與OAuth2合作,奇怪的是,期望oauth2_access_token而不是access_token,它是默認的rauth(不能被覆蓋),並且不需要承載令牌在標題中。 – dangonfast 2013-05-03 07:34:50
只是爲了澄清。我看到它的方式,你是圖書館的專家。我不是。我 - 和其他人 - 需要你的幫助(你可以給與否)我認爲你需要別人幫助解決其他問題,並且你並不是所有領域的專家。所以你經常會問一些愚蠢或明顯的問題。至少我是。所以是的,你可以抱怨我問的是愚蠢的問題(這不是我問過的最愚蠢的問題),但我已經知道了。某處,某個地方是我的問題的答案。我只是不知道在哪裏,這是(對我來說)正確的地方要問。 – dangonfast 2013-05-03 07:40:43