Raw HTTP-Antwort-Header erhalten

9

Gibt es eine Möglichkeit, RAW-Antwort-Header zu erhalten?

Die getHeaderField() -Methode funktioniert nicht für mich, weil der Server mehrere 'Set-Cookies' ausgibt und einige von ihnen verloren gehen.

    
p4553d 21.02.2010, 20:08
quelle

4 Antworten

29
  

Die Methode getHeaderField() funktioniert nicht für mich

Sie fragen das im Kontext von java.net.URLConnection , oder? Nein, das Abrufen der HTTP-Antwortheader ist mit URLconnection nicht möglich. Sie müssen auf die Socket-Programmierung zurück greifen. Hier ist ein SSCCE , einfach kopieren und nicht ausführen.

%Vor%

Um zu vermeiden, dass SO von allen, die dieses Snippet ausprobieren, überlastet wird, sieht die Ausgabe folgendermaßen aus:

%Vor%

Weitere Informationen zum Senden von HTTP-Anfragen auf niedriger Ebene finden Sie in der HTTP-Spezifikation .

Sie möchten jedoch wahrscheinlich verwenden getHeaderFields() Methode, um stattdessen einen Header mit mehreren Werten abzurufen. Die getHeaderField() gibt nämlich nur den letzten Wert zurück, wie in der verknüpften API-Dokumentation.

%Vor%     
BalusC 21.02.2010, 20:40
quelle
6

Nicht genau "roh", aber prägnant:

%Vor%

Wenn Sie sich Sorgen machen, dass einige Header verloren gehen, verwenden Sie:

%Vor%

PS: Besser spät als nie. :)

    
ostergaard 31.08.2013 07:45
quelle
2

Der einfachste Weg ist die Verwendung des getHeaderFields() Methode von URLConnection . Hier ist ein Code, der etwas Ähnliches macht.

%Vor%     
erickson 21.02.2010 22:02
quelle
1

Spät zur Party, aber hier ist die einfachste Lösung. Implementieren Sie einfach CookieStore. (Oder verwenden Sie die Standardimplementierung, und sorgen Sie dafür, dass die Cookies Ihren nachfolgenden Anrufen hinzugefügt werden.)

Ссылка

Legen Sie Ihren Cookie-Speicher als Standard-Cookie-Manager fest

%Vor%

Und jeder neue Cookie wird Ihnen in Ihrem CookieStore hinzugefügt (). Ich hatte das gleiche Problem mit Params überschrieben werden, indem Sie den gleichen Namen "Set-Cookie" in einer einzigen Anfrage, und jetzt bekomme ich sowohl den Cookie und die SessionId.

    
accordionfolder 14.01.2015 17:08
quelle

Tags und Links