default headers and content encoding settings
authorKenneth Reitz <me@kennethreitz.com>
Sun, 24 Jul 2011 02:35:46 +0000 (22:35 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Sun, 24 Jul 2011 02:35:46 +0000 (22:35 -0400)
Closes #78

requests/config.py
requests/models.py

index c34a2b9..1d335f4 100644 (file)
@@ -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
index a03fff6..7fb07fb 100644 (file)
@@ -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