diff options
Diffstat (limited to 'requests/core.py')
| -rw-r--r-- | requests/core.py | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/requests/core.py b/requests/core.py index 6fcfca03..05b7619d 100644 --- a/requests/core.py +++ b/requests/core.py @@ -13,6 +13,7 @@ import urllib import urllib2 +from urllib2 import HTTPError try: import eventlet @@ -33,8 +34,8 @@ from .packages.poster.streaminghttp import register_openers __title__ = 'requests' -__version__ = '0.2.2' -__build__ = 0x000202 +__version__ = '0.2.3' +__build__ = 0x000203 __author__ = 'Kenneth Reitz' __license__ = 'ISC' __copyright__ = 'Copyright 2011 Kenneth Reitz' @@ -159,7 +160,6 @@ class Request(object): if isinstance(self.params, dict): params = urllib.urlencode(self.params) else: - params = self.params req = _Request(("%s?%s" % (self.url, params)), method=self.method) @@ -172,11 +172,11 @@ class Request(object): try: resp = opener(req) self._build_response(resp) - success = True + self.response.ok = True except urllib2.HTTPError as why: self._build_response(why) - success = False + self.response.error = why elif self.method == 'PUT': @@ -204,11 +204,11 @@ class Request(object): resp = opener(req) self._build_response(resp) - success = True + self.response.ok = True except urllib2.HTTPError as why: self._build_response(why) - success = False + self.response.error = why elif self.method == 'POST': @@ -233,21 +233,19 @@ class Request(object): req.data = self.data try: - opener = self._get_opener() resp = opener(req) self._build_response(resp) - success = True + self.response.ok = True except urllib2.HTTPError as why: self._build_response(why) - success = False - + self.response.error = why - self.sent = True if success else False + self.sent = self.response.ok - return success + return self.sent class Response(object): @@ -261,9 +259,20 @@ class Response(object): self.status_code = None self.headers = dict() self.url = None + self.ok = False + self.error = None def __repr__(self): return '<Response [%s]>' % (self.status_code) + + def __nonzero__(self): + """Returns true if status_code is 'OK'.""" + return not self.error + + def raise_for_status(self): + """Raises stored HTTPError if one exists.""" + if self.error: + raise self.error |
