Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Overbyte ICS wie benutzt man TSslHTTPRest für Get-Requests mit Akzenten

  Alt 19. Feb 2023, 23:11
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.

Geändert von DieDolly (20. Feb 2023 um 00:02 Uhr)
  Mit Zitat antworten Zitat