Viele Web-Apps senden Cookies in mehreren Set-Cookie-Headern, ein Header für ein Cookie. Requests verbindet diese Header in einem großen Header, getrennt durch Komma.
Von derselben Webapp zu request.get
Set-Cookie: ASP.NET_SessionId=token1; path=/; HttpOnly
Set-Cookie: Cookie1=token2; path=/ecp
Set-Cookie: X-BEResource=WIN-RBFR0BDA7V7.testlab.net~1; path=/ecp/15.0.516.30; HttpOnly
Set-Cookie: X-BackEndCookie=token3; expires=Mon, 03-Apr-2017 12:25:07 GMT; path=/ecp; HttpOnly
Bei Anfragen:
bzw. Header so aussehen
Set-Cookie: ASP.NET_SessionId=token1; path=/; HttpOnly,
Cookie1=token2; path=/ecp,
X-BEResource=WIN-RBFR0BDA7V7.testlab.net~1; path=/ecp/15.0.516.30; HttpOnly,
X-BackEndCookie=token3; expires=Thu, 06-Apr-2017 08:27:22 GMT; path=/ecp; HttpOnly
Firefox, IE, Chrome interpretierten diese Cookies ungültig, da das Trennzeichen ein Komma ist, aber im Feld EXPIRES ein Komma Tag und Datum trennen.
Hauptproblem im Änderungsverkehr. Meiner Meinung nach muss der Server dann mehrere Header senden lib muss mehrere Header zurückgeben
Requests macht keine Zusagen, Header in der Form zu belassen, in der sie vom Server empfangen werden. Im Moment empfehle ich Ihnen dringend, die Cookies zu verwenden, die Requests verwendet, um Cookies zu speichern, anstatt sie aus den Headern zu extrahieren: Wir fügen sie dort richtig ein.
Längerfristig sollten wir wahrscheinlich einen Fix hinzufügen, um den Set-Cookie
Header von diesem Beitritt auszuschließen.
Das hat uns gebissen und uns einige Stunden gekostet. Ich würde gerne dafür stimmen, Set-Cookie
intakt zu lassen. Warum fummeln Anfragen überhaupt an den Headern herum? Gibt es einen guten Grund dafür? IMHO verkompliziert es nur die Dinge für alle. Was vermisse ich?
Danke für deine gute Arbeit!
Hallo, es gibt eine Möglichkeit, Header mit https://github.com/Ousret/kiss-headers korrekt zu parsen. requests
wird ihre Darstellung für Header in absehbarer Zeit nicht mehr ändern können.
Hilfreichster Kommentar
Requests macht keine Zusagen, Header in der Form zu belassen, in der sie vom Server empfangen werden. Im Moment empfehle ich Ihnen dringend, die Cookies zu verwenden, die Requests verwendet, um Cookies zu speichern, anstatt sie aus den Headern zu extrahieren: Wir fügen sie dort richtig ein.
Längerfristig sollten wir wahrscheinlich einen Fix hinzufügen, um den
Set-Cookie
Header von diesem Beitritt auszuschließen.