Encode incoming data.
authorKenneth Reitz <me@kennethreitz.com>
Thu, 12 May 2011 07:14:09 +0000 (03:14 -0400)
committerKenneth Reitz <me@kennethreitz.com>
Thu, 12 May 2011 07:14:09 +0000 (03:14 -0400)
Closes #27.

requests/core.py

index 6408afc..b2bad89 100644 (file)
@@ -71,14 +71,17 @@ class Request(object):
         self.files = files
         self.method = method
         self.data = data
-        
+
         socket.setdefaulttimeout(timeout)
 
+        for (k, v) in self.data.iteritems():
+            self.data[k] = v.encode('utf-8')
+
         # url encode data if it's a dict
         if hasattr(data, 'items'):
-            self._enc_data = urllib.urlencode(data)
+            self._enc_data = urllib.urlencode(self.data)
         else:
-            self._enc_data = data
+            self._enc_data = self.data
 
         self.response = Response()
 
@@ -158,8 +161,9 @@ class Request(object):
 
         self.response.url = getattr(resp, 'url', None)
 
+
     @staticmethod
-    def _build_url(url, data):
+    def _build_url(url, data=None):
         """Build URLs."""
 
         if urlparse(url).query:
@@ -170,6 +174,7 @@ class Request(object):
             else:
                 return url
 
+
     def send(self, anyway=False):
         """Sends the request. Returns True of successful, false if not.
         If there was an HTTPError during transmission,
@@ -203,6 +208,9 @@ class Request(object):
             req.headers.update(self.headers)
 
         if not self.sent or anyway:
+
+
+
             try:
                 opener = self._get_opener()
                 resp = opener(req)
@@ -229,6 +237,8 @@ class Request(object):
     def read(self, *args):
         return self.response.read()
 
+
+
 class Response(object):
     """The :class:`Request` object. All :class:`Request` objects contain a
     :class:`Request.response <response>` attribute, which is an instance of
@@ -263,6 +273,7 @@ class Response(object):
         return self.content
 
 
+
 class AuthManager(object):
     """Authentication Manager."""
 
@@ -299,6 +310,7 @@ class AuthManager(object):
 
         self._auth[uri] = auth
 
+
     def add_password(self, realm, uri, user, passwd):
         """Adds password to AuthManager."""
         # uri could be a single URI or a sequence