TsgcHTTP2Client › Méthodes › PostFuture
Exécute un POST HTTP/2 dans un thread d'arrière-plan et renvoie un future qui se résout avec le corps de la réponse.
function PostFuture(const aURL: string; aData: TStream): IsgcFuture<string>;
| Nom | Type | Description |
|---|---|---|
aURL
| const string | URL absolue qui recevra la requête POST. |
aData
| TStream
| Stream fournissant le corps de la requête. Gardez le stream actif jusqu'à ce que le future se termine ; il est lu depuis le thread d'arrière-plan pendant l'envoi de la requête. |
Un IsgcFuture<string> qui se résout avec le corps de la réponse. Appelez Await pour bloquer jusqu'à l'arrivée de la réponse, ThenProc pour consommer le corps dans une continuation, OnError pour gérer les échecs et Cancel pour abandonner la requête.
PostFuture est le pendant de style future de la méthode synchrone Post : la requête s'exécute dans un thread d'arrière-plan et la méthode retourne immédiatement, de sorte que le thread appelant n'est jamais bloqué. Contrairement à PostAsync, aucun gestionnaire d'événements n'est requis : la réponse est délivrée via le future renvoyé. Appeler Cancel déconnecte le client, de sorte qu'une requête encore en attente de sa réponse est abandonnée au lieu de s'exécuter jusqu'au bout ; une requête abandonnée ou échouée rejette le future avec une exception délivrée à OnError (ou relancée par Await). Nécessite Delphi 2010 ou version ultérieure (et C++Builder 2010 ou version ultérieure) ; non disponible dans l'édition .NET.
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;