Einzelnen Beitrag anzeigen

DieDolly

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

TIdHTTP zu THTTPClient umschreiben, THttpClient ableiten und Get() überschreiben

  Alt 9. Apr 2022, 17:09
TIdHTTP (get und post) scheint seit ein paar Wochen oder länger nicht mehr auf gewissen Systemen zu funktionieren, deswegen würde ich gerne alles zu THTTPClient umschreiben.

Ein Problem habe ich aber. Ich habe eine eigene Klasse THTTPCustom = class(THttpClient) mit eigenem Create und Destroy. Ich ich gerne das Get überschreiben, sodass ich String zurück bekomme und nicht erst wieder überall ContentAsString() hinschreiben muss. Wie geht das?

Außerdem würde ich in der eigenen Klasse ein property Response: IHttpResponse; einfügen. Die eigene Get-Funktion setzt dann gleich auch Response.
Der Vorteil ist, dass ich dann alles was ich brauche (String Get-Ergebnis und IHttpResponse Response-Ergebnis) in einer Klasse statt 2.

Mir fällt gerade aber auch auf, dass das hier gar nicht funktioniert und mit einem abstrakten Fehler beendet wird. Nur wieso?

Delphi-Quellcode:
unit HTTPCustom;

interface

uses
 System.Net.HttpClient;

type
 THTTPCustom = class(THttpClient)
 public
  constructor Create;
  destructor Destroy; override;
 end;

implementation

constructor THTTPCustom.Create;
begin
 inherited Create;
end;

destructor THTTPCustom.Destroy;
begin
 inherited Destroy;
end;

// hier würde ich gern noch Get() hinzufügen, wo dann Antwort von Get (IHttpResponse) in eine private Variable HttpResponse geschrieben wird

end.
Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject);
var
 HttpClient: THTTPCustom;
 HttpResponse: IHttpResponse;
begin
 HttpClient := THTTPCustom.Create;
 try
  HttpResponse := HttpClient.Get('irgendeine txt datei auf irgendeinem server');
 finally
  HttpClient.Free;
 end;
end;

Geändert von DieDolly ( 9. Apr 2022 um 19:03 Uhr)
  Mit Zitat antworten Zitat