From: Kenneth Reitz Date: Wed, 2 May 2012 23:09:18 +0000 (-0400) Subject: pre-send hook X-Git-Tag: v0.12.0~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8ac6b266c923ee64680828fa288674667f070519;p=services%2Fpython-requests.git pre-send hook #516 --- diff --git a/requests/hooks.py b/requests/hooks.py index 3560b89..13d0eb5 100644 --- a/requests/hooks.py +++ b/requests/hooks.py @@ -12,6 +12,9 @@ Available hooks: A dictionary of the arguments being sent to Request(). ``pre_request``: + The Request object, directly after being created. + +``pre_send``: The Request object, directly before being sent. ``post_request``: @@ -25,7 +28,7 @@ Available hooks: import traceback -HOOKS = ('args', 'pre_request', 'post_request', 'response') +HOOKS = ('args', 'pre_request', 'pre_send', 'post_request', 'response') def dispatch_hook(key, hooks, hook_data): diff --git a/requests/models.py b/requests/models.py index 184f91b..be6d2a6 100644 --- a/requests/models.py +++ b/requests/models.py @@ -570,6 +570,10 @@ class Request(object): if cookie_header is not None: self.headers['Cookie'] = cookie_header + # Pre-send hook. + r = dispatch_hook('pre_send', self.hooks, self) + self.__dict__.update(r.__dict__) + try: # The inner try .. except re-raises certain exceptions as # internal exception types; the outer suppresses exceptions