Encode incoming data.

Closes #27.
This commit is contained in:
Kenneth Reitz
2011-05-12 03:14:09 -04:00
parent 8a4a05aac0
commit b6f6048cff
+16 -4
View 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