Selon urllib2 docs, l'attribut .headers
de l'objet URL de résultat est un httplib.HTTPMessage
(qui semble être non documenté, au moins dans les documents Python).
Cependant,
help(httplib.HTTPMessage)
...
If multiple header fields with the same name occur, they are combined
according to the rules in RFC 2616 sec 4.2:
Appending each subsequent field-value to the first, each separated
by a comma. The order in which header fields with the same field-name
are received is significant to the interpretation of the combined
field value.
Donc, si vous accédez u.headers [Cookie Set-'], vous devriez obtenir un en-tête Set-Cookie avec les valeurs séparées par des virgules.
En effet, cela semble être le cas.
import httplib
from StringIO import StringIO
msg = \
"""Set-Cookie: Foo
Set-Cookie: Bar
Set-Cookie: Baz
This is the message"""
msg = StringIO(msg)
msg = httplib.HTTPMessage(msg)
assert msg['Set-Cookie'] == 'Foo, Bar, Baz'
est-ce que cela fonctionne aussi quand nous faisons add_header sur la demande? –
Rushabh: Non, mais pour des choses comme les cookies, il existe des bibliothèques qui gèrent les règles RFC 2616. Voir 'Lib/cookielib'. –