From 8ac6b266c923ee64680828fa288674667f070519 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 2 May 2012 19:09:18 -0400 Subject: [PATCH] pre-send hook #516 --- requests/hooks.py | 5 ++++- requests/models.py | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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 -- 2.7.4