From: Kenneth Reitz Date: Wed, 17 Aug 2011 05:23:49 +0000 (-0400) Subject: get cookies from response X-Git-Tag: v0.6.0~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e255177dc206ec22118ef98b3b857c598073bd9;p=services%2Fpython-requests.git get cookies from response #116 --- diff --git a/requests/models.py b/requests/models.py index c802f03..5e54f37 100644 --- a/requests/models.py +++ b/requests/models.py @@ -20,6 +20,7 @@ from .monkeys import Request as _Request, HTTPBasicAuthHandler, HTTPForcedBasicA from .structures import CaseInsensitiveDict from .packages.poster.encode import multipart_encode from .packages.poster.streaminghttp import register_openers, get_handlers +from .utils import dict_from_cookiejar from .exceptions import RequestException, AuthenticationError, Timeout, URLRequired, InvalidMethod @@ -187,6 +188,12 @@ class Request(object): response.headers = CaseInsensitiveDict(getattr(resp.info(), 'dict', None)) response.read = resp.read response.close = resp.close + + if self.cookiejar: + + response.cookies = dict_from_cookiejar(self.cookiejar) + + except AttributeError: pass @@ -397,6 +404,7 @@ class Response(object): self.history = [] #: The Request that created the Response. self.request = None + self.cookies = None def __repr__(self): diff --git a/requests/utils.py b/requests/utils.py new file mode 100644 index 0000000..f308f66 --- /dev/null +++ b/requests/utils.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- + +""" +requests.utils +~~~~~~~~~~~~~~ + +This module provides utlity functions that are used within Requests +that are also useful for external consumption. + +""" + + +def dict_from_cookiejar(cookiejar): + """Returns a key/value dictoinary from a CookieJar.""" + + cookie_dict = {} + + for _, cookies in cookiejar._cookies.items(): + for _, cookies in cookies.items(): + for cookie in cookies.values(): + cookie_dict[cookie.name] = cookie.value + + return cookie_dict +