Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Cookies fail #18

Open
Open

Description

I experienced the following issues with cookies:

  1. "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".

  2. 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(...)).

  3. 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
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /