TsgcHTTP2ClientMethoden › PostFuture

PostFuture Methode

Führt einen HTTP/2-POST in einem Hintergrundthread aus und gibt ein Future zurück, das sich zum Antwort-Body auflöst.

Syntax

function PostFuture(const aURL: string; aData: TStream): IsgcFuture<string>;

Parameter

NameTypBeschreibung
aURLconst stringAbsolute URL, die die POST-Anfrage empfängt.
aDataTStreamStream, der den Anfrage-Body liefert. Halten Sie den Stream am Leben, bis das Future abgeschlossen ist; er wird vom Hintergrundthread gelesen, während die Anfrage gesendet wird.

Rückgabewert

Ein IsgcFuture<string>, das sich zum Antwort-Body auflöst. Rufen Sie Await auf, um zu blockieren, bis die Antwort eintrifft, ThenProc, um den Body in einer Continuation zu verarbeiten, OnError, um Fehler zu behandeln, und Cancel, um die Anfrage abzubrechen.

Hinweise

PostFuture ist das Future-Gegenstück zum synchronen Post: Die Anfrage läuft in einem Hintergrundthread und die Methode kehrt sofort zurück, sodass der aufrufende Thread nie blockiert wird. Anders als bei PostAsync ist kein Event-Handler erforderlich: Die Antwort wird über das zurückgegebene Future zugestellt. Der Aufruf von Cancel trennt die Verbindung des Clients, sodass eine noch auf ihre Antwort wartende Anfrage abgebrochen wird, statt bis zum Ende zu laufen; eine abgebrochene oder fehlgeschlagene Anfrage weist das Future mit einer Exception zurück, die an OnError übergeben (oder von Await erneut ausgelöst) wird. Erfordert Delphi 2010 oder höher (und C++Builder 2010 oder höher); in der .NET-Edition ist es nicht verfügbar.

Beispiel

oBody := TStringStream.Create('{"name":"John"}');
oClient.Request.ContentType := 'application/json';
oFuture := oClient.PostFuture('https://api.example.com/users', oBody);
try
  WriteLn(oFuture.Await);
finally
  oBody.Free;
end;

Zurück zu Methoden