-
Notifications
You must be signed in to change notification settings - Fork 39
Description
I experienced the following issues with cookies:
-
"Set-Cookie" not searched for in headers case-insensitively. Not sure what the RFCs say, but reality is reality and some servers send "set-cookie".
-
Some kind of confusion in the Response object code between 'cookies' and 'cookiesjar' led to cookies not being made available in resp.cookiesjar. (Found with resp = hurl.post(...)).
-
URL-encoding the ('+' and '=' characters in) a cookie value was causing problems with a server that was not expecting the value to be altered.
This patch fixes these, but I am not submitting it formally since I'm not sure how you want to clean up (2), and (3) is not a final solution either.
--- core.py~ 2012-10-09 11:12:41.000000000 -0400
+++ core.py 2012-10-09 12:11:44.373158314 -0400
@@ -519,7 +519,8 @@
## if isinstance(value, unicode):
## value = value.encode("utf-8")
name = urllib.quote_plus(name)
-
value = urllib.quote_plus(value)
-
#value = urllib.quote_plus(value) chunks.append('%s=%s;' % (name, value)) if chunks: opener.setopt(pycurl.COOKIE, ''.join(chunks))
@@ -621,14 +622,16 @@
# Response headers
self._headers = None# Cookies dictionary
-
self._cookies = None
+# self._cookies = None
if isinstance(cookies, CookieJar):
self._cookies_jar = cookies
elif isinstance(cookies, (TupleType, DictType)):
self._cookies_jar = to_cookiejar(cookies)
else: -
self._cookies_jar = None
-
self._cookies_jar = CookieJar()
-
self._cookies = self._cookies_jar # Seconds from request start to finish self.request_time = None