2 Stimmen

Kopieren von Cookies von der ersten Antwort zur nächsten Anfrage

Ich sende eine erste HTTP-Anforderung mit HttpRequest->send(), und ich erhalte eine 302-Antwort mit den folgenden Set-Cookie-Headern:

  • Set-Cookie: SESSION_SCOPE=1; path=/
  • Eingestelltes Kriterium: III_EXPT_FILE=aa2171; path=/; domain=.example.com
  • Set-Cookie: III_SESSION_ID=193a3ce5aaadea85937c25cd0430332f; domain=.example.com; path=/

Wenn ich HttpRequest->getResponseCookies() verwende, sieht der extrahierte Inhalt so aus:

Array ( 
 - [0] => stdClass Object ( [cookies] => Array ( [SESSION_SCOPE] => 1 ) [extras] => Array ( ) [flags] => 0 [expires] => 0 [path] => / [domain] => ) 
 - [1] => stdClass Object ( [cookies] => Array ( [III_EXPT_FILE] => aa2171 ) [extras] => Array ( ) [flags] => 0 [expires] => 0 [path] => / [domain] => .example.com ) 
 - [2] => stdClass Object ( [cookies] => Array ( [III_SESSION_ID] => 193a3ce5aaadea85937c25cd0430332f ) [extras] => Array ( ) [flags] => 0 [expires] => 0 [path] => / [domain] => .example.com )
 ) 

Jetzt muss ich diese Cookies in die nächste ausgehende Anfrage an den umgeleiteten Standort kopieren. Ich verwende HttpRequest->setCookies(), in dem das Argument ist das Array, das von der vorherigen getResponseCookies() Aufruf zurückgegeben wurde.

Was ich in der ausgehenden Anfrage sehe, ist:

Cookie: 0%5Bcookies%5D%5BSESSION_SCOPE%5D=1; 0%5Bflags%5D=0; 0%5Bexpires%5D=0; 0%5Bpath%5D=%2F; 0%5Bdomain%5D=; 1%5Bcookies%5D%5BIII_EXPT_FILE%5D=aa2171; 1%5Bflags%5D=0; 1%5Bexpires%5D=0; 1%5Bpath%5D=%2F; 1%5Bdomain%5D=.example.com; 2%5Bcookies%5D%5BIII_SESSION_ID%5D=193a3ce5aaadea85937c25cd0430332f; 2%5Bflags%5D=0; 2%5Bexpires%5D=0; 2%5Bpath%5D=%2F; 2%5Bdomain%5D=.example.com

Meine Fragen sind:

  1. Wie geht man dabei richtig vor? Denn offensichtlich werden die Array-Indizes auch in der Kopfzeile hinzugefügt
  2. Wie kann ich die Url-Kodierung der Parameter verhindern?
  3. Wie kann ich verhindern, dass die Attribute "Pfad" und "Domäne" zur Kopfzeile hinzugefügt werden?

Gracias.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X