From: Kenneth Reitz Date: Tue, 15 Feb 2011 14:18:43 +0000 (-0500) Subject: Added new HTTPError handing mechanisms. X-Git-Tag: v0.2.3^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c900b4379b9bda3fb8491fa3bd96fdfa2f163a3f;p=services%2Fpython-requests.git Added new HTTPError handing mechanisms. --- diff --git a/requests/core.py b/requests/core.py index 6fcfca0..8c63561 100644 --- a/requests/core.py +++ b/requests/core.py @@ -159,7 +159,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 +171,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 +203,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 +232,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 +258,20 @@ class Response(object): self.status_code = None self.headers = dict() self.url = None + self.ok = False + self.error = False def __repr__(self): return '' % (self.status_code) + + def __nonzero__(self): + """Returns true if status_code is 'OK'.""" + return not self.error + + def raise_for_response(self): + """Raises stored HTTPError if one exists.""" + if self.error: + raise self.error