Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi vollen Header aus IDHTTP response auslesen. (https://www.delphipraxis.net/213508-vollen-header-aus-idhttp-response-auslesen.html)

stalkingwolf 9. Aug 2023 12:24


vollen Header aus IDHTTP response auslesen.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich komme an diverse Informationen aus dem IDHTTP Response nicht, welcher aber für mich relevant wären.
Wenn ich RESTClient in Firefox nutze schaut z.b eine Antwort wie im Anhang aus.

Ich komme nicht an die Infos ran.
Im Response habe ich eine HTML Seite welche nur 400 Bad-Request ausgibt.
Im Responsetext "HTTP/1.1 400 Bad Request" im Code "400"
Ich gebe mir den RAWHeader ( auch CustomHEader) aus welche leer sind
z.b
Code:
for i := 0 to idhttp.Response.RawHeaders.Count -1 do begin
    showmessage(format('<%s> : <%s>',[
        idhttp.Response.RawHeaders.Names[i],
        idhttp.Response.RawHeaders.ValueFromIndex[i]
    ]));
nd;
Ich habe TIDLogFile mit der IDHTTP verbunden und lass mir die Daten bei onReceive und onSend ausgeben.
In onReceive steht gar nichts. in onSend immerhin was ich sende und das schaut gut aus.

Problem ist das der Server mir im Header "www-authenticate" den Fehler mit sendet und ich komme da nicht dran.

Nachtrag : ich habe idhttp.Response.WWWAuthenticate gefunden. Aber leider genau so leer.

stalkingwolf 10. Aug 2023 07:45

AW: vollen Header aus IDHTTP response auslesen.
 
Ich habe die Anfrage mittlerweile hinbekommen.
Interessant ist das wenn der HTTP Code 200 ist in RawHeader alles drin steht.
Bei 400 (Bad Request) war dieser komplett leer.

himitsu 10. Aug 2023 09:07

AW: vollen Header aus IDHTTP response auslesen.
 
4xx sagt doch, dass der Server Probleme hatte, also ist es auch verständlich, wenn z.B. die speziellen Header fehlen, da er deine Anfrage nicht verarbeiten konnte.

stalkingwolf 11. Aug 2023 08:11

AW: vollen Header aus IDHTTP response auslesen.
 
Zitat:

Zitat von himitsu (Beitrag 1525463)
4xx sagt doch, dass der Server Probleme hatte, also ist es auch verständlich, wenn z.B. die speziellen Header fehlen, da er deine Anfrage nicht verarbeiten konnte.

Aber im Header steht dann der genau Fehler drin. Das ist natürlich Abhängig wie die Gegenseite einem das liefert.
Viele übergeben das auch im ResponseText.

Also z.b ResponseCode 400 in ResponseText "Bad Request".
In WWWAuthenticate steht dann "Feld xyz muss nummerisch sein"

Und das ist halt dann etwas ätzend, wenn man einen Fehler hat und nicht weiß was die Gegenseite will und man das ganze immer im RestClient nachbauen muss um dann korrekt zu sehen worum es geht.
Und wenn es dann sogar dort keinen Fehler erhält beginnt das große Suchen was nun schief ist.

himitsu 11. Aug 2023 09:05

AW: vollen Header aus IDHTTP response auslesen.
 
Gut, aber Viele geben bei den ErrorStatusCodes eh nur den StandardText an (selten war Spezielles/Eigenes)
und falls der fehlt, dann gibt es ja noch die vielen HTTPStatusCodeListen im Netz.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz