Delphi ist nur ein Hobby, ich kenne mich mit sowas alles überhaupt nicht aus. Ich habe leider auch nicht verstanden, was du meinst.
Der Code oben ist direkt aus dem HTTP ICS-Beispiel.
Es werden ganz normale Textdaten empfangen. 0-9 a-zA-Z Punkte, Striche, Akzente.
Ich habe gerade einfach mal rumgetestet.
DataStream := TStringStream.Create(s, TEncoding.UTF8);
s: string ist nur ein dummy der nicht benutzt wird.
Und unten dann
Caption := DataStream.DataString;
Und
DataStream.Seek(0, soBeginning);
statt
DataStream.Write(Zero, 1);
Das funktioniert. Aber ist das so richtig?
Meine fertige Klasse aus Verschiedenen Quellen zusammengebastelt
Delphi-Quellcode:
unit Unit2;
interface
uses System.Classes, System.SysUtils, OverbyteIcsSslHttpRest;
type
TSSLHTTP =
class(TSslHttpRest)
private
s:
string;
// dummy string for TStringStream
public
ResponseContent: TStringStream;
ResponseString:
string;
procedure Get(
const AURL:
string);
constructor Create;
destructor Destroy;
override;
end;
implementation
constructor TSSLHTTP.Create;
begin
inherited Create(
nil);
Timeout := 10;
// ICS default: 30 seconds
Accept := '
text/plain';
ResponseContent := TStringStream.Create(s, TEncoding.UTF8);
end;
destructor TSSLHTTP.Destroy;
begin
inherited Destroy;
ResponseContent.Free;
end;
procedure TSSLHTTP.Get(
const AURL:
string);
begin
URL := AURL;
ResponseContent.Clear;
RcvdStream := ResponseContent;
try
inherited Get;
ResponseContent.Seek(0, soBeginning);
except
// on E: Exception do
// Caption := 'Failed. ' + E.ClassName + ': ' + E.Message;
end;
end;
end.