![]() |
indy IdHttp post response nicht lesbar
Guten abend leute,
Ich benutze folgende Funktion um mit der indy IdHttp komponente post requests zu senden
Code:
Alles funktioniert auch eigentlich einwandtfrei, bekomme einen 200 statuscode (nach zweimaligem redirect) zurück, Wireshark hat alles korrekt mitgeschnitten und keine probleme zu sehen soweit.
procedure TForm1.PostData(lparams : TStringList; post_url, referer: string);
var i : integer; str : TStringList; s : TStrings; begin s := TStringList.Create; str := TStringList.Create; for i:= 0 to lparams.Count -1 do begin str := split(lparams.Strings[i], '&&&'); if str.Count >= 2 then s.Append(str.Strings[0]+'='+str.Strings[1]) else s.Append(str.Strings[0]+'='); end; with web do begin try web.Request.Referer := referer; res := web.Post(post_url, s); log(web.ResponseText); log(IntToStr(web.Response.ContentLength)); except if not(web.Response.ResponseCode = 302) then log('unbekannter Fehler aufgetreten!'); end; end; end; Nun versuche ich allerdings ganz simpel mittels
Code:
die response in ein memo zu schreiben.
memo1.Text := res;
Im memo befindet sich nur ein eiziges zeichen, das im ascii satz entweder nicht vorhanden ist oder zumindest hier nicht darstellbar
Code:
Es existiert jedoch (wie ja auch schon durch wireshark bestätigt) ein content.
‹
Code:
gibt über 6000 zeichen im content an
web.Response.ContentLength
Wie kann es sein, dass ich nichts (fast nichts) sehe, diese funktion habe ich bereits vor einem Jahr erfolgreich benutzt (allerdings in anderem context) Wenn weitere infos nötig sind bitte sofort bescheid sagen, ich habe alles so genau wie möglich beschrieben... Vielen dank schon mal im Voraus TheThrust |
AW: indy IdHttp post response nicht lesbar
Sorry leute, ich habe die Antwort eben durch weiteres trial and error selbst rausgefunden.
In der init-funktion, die ich für die idhttp komponente geschrieben hatte, habe ich auch content encoding erlaubt.
Code:
Also habe ich gzip-ten oder anders komprimierten content bekommen, der natürlich erst dekomprimiert werden müsste.
idhttp.Request.AcceptEncoding := 'gzip,deflate,sdch';
Solange ich nicht explizit eine AcceptEncoding erlaube funktioniert alles super! :D TheThrust |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz