Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   indy IdHttp post response nicht lesbar (https://www.delphipraxis.net/161955-indy-idhttp-post-response-nicht-lesbar.html)

TheThrust 29. Jul 2011 18:20

indy IdHttp post response nicht lesbar
 
Guten abend leute,

Ich benutze folgende Funktion um mit der indy IdHttp komponente post requests zu senden
Code:
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;
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.

Nun versuche ich allerdings ganz simpel mittels
Code:
memo1.Text := res;
die response in ein memo zu schreiben.

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:
web.Response.ContentLength
gibt über 6000 zeichen im content an

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

TheThrust 29. Jul 2011 18:44

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:
idhttp.Request.AcceptEncoding := 'gzip,deflate,sdch';
Also habe ich gzip-ten oder anders komprimierten content bekommen, der natürlich erst dekomprimiert werden müsste.

Solange ich nicht explizit eine AcceptEncoding erlaube funktioniert alles super! :D

TheThrust


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 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