TsgcHTTP2Client › Methoden › PostFuture
Voert een HTTP/2 POST uit op een achtergrondthread en retourneert een future die wordt opgelost naar de antwoordbody.
function PostFuture(const aURL: string; aData: TStream): IsgcFuture<string>;
| Naam | Type | Beschrijving |
|---|---|---|
aURL | const string | Absolute URL die het POST-verzoek ontvangt. |
aData | TStream | Stream die de body van het verzoek levert. Houd de stream in leven totdat de future is voltooid; deze wordt vanaf de achtergrondthread gelezen terwijl het verzoek wordt verzonden. |
Een IsgcFuture<string> die wordt opgelost naar de antwoordbody. Roep Await aan om te blokkeren totdat het antwoord arriveert, ThenProc om de body in een vervolgactie te verwerken, OnError om fouten af te handelen en Cancel om het verzoek af te breken.
PostFuture is de tegenhanger in future-stijl van het synchrone Post: het verzoek wordt uitgevoerd op een achtergrondthread en de methode keert onmiddellijk terug, zodat de aanroepende thread nooit wordt geblokkeerd. In tegenstelling tot PostAsync is er geen event-handler nodig: het antwoord wordt geleverd via de geretourneerde future. Het aanroepen van Cancel verbreekt de verbinding van de client, zodat een verzoek dat nog op zijn antwoord wacht wordt afgebroken in plaats van volledig te worden uitgevoerd; een afgebroken of mislukt verzoek wijst de future af met een uitzondering die aan OnError wordt geleverd (of opnieuw wordt gegooid door Await). Vereist Delphi 2010 of later (en C++Builder 2010 of later); het is niet beschikbaar in de .NET-editie.
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;