From: Kenneth Reitz Date: Sun, 24 Jul 2011 02:35:46 +0000 (-0400) Subject: default headers and content encoding settings X-Git-Tag: v0.5.1^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c3c90bb09c9f4cd635ea28cbc784ee5f724bdab8;p=services%2Fpython-requests.git default headers and content encoding settings Closes #78 --- diff --git a/requests/config.py b/requests/config.py index c34a2b9..1d335f4 100644 --- a/requests/config.py +++ b/requests/config.py @@ -54,4 +54,5 @@ class Settings(object): return object.__getattribute__(self, key) settings = Settings() -settings.base_headers = {'User-Agent': 'python-requests.org'} \ No newline at end of file +settings.base_headers = {'User-Agent': 'python-requests.org'} +settings.accept_gzip = True \ No newline at end of file diff --git a/requests/models.py b/requests/models.py index a03fff6..7fb07fb 100644 --- a/requests/models.py +++ b/requests/models.py @@ -80,9 +80,21 @@ class Request(object): #: True if Request has been sent. self.sent = False - headers = settings.base_headers - if self.headers: - headers.update(self.headers) + + # Header manipulation and defaults. + + if settings.accept_gzip: + settings.base_headers.update({'Accept-Encoding': 'gzip'}) + + if headers: + headers = CaseInsensitiveDict(self.headers) + else: + headers = CaseInsensitiveDict() + + for (k, v) in settings.base_headers.items(): + if k not in headers: + headers[k] = v + self.headers = headers