TsgcHTTP2Client › Métodos › PostFuture
Executa um POST HTTP/2 em uma thread em segundo plano e retorna um future que é resolvido com o corpo da resposta.
function PostFuture(const aURL: string; aData: TStream): IsgcFuture<string>;
| Name | Type | Descrição |
|---|---|---|
aURL | const string | URL absoluta que receberá a requisição POST. |
aData | TStream | Stream que fornece o corpo da requisição. Mantenha o stream vivo até que o future seja concluído; ele é lido pela thread em segundo plano enquanto a requisição é enviada. |
Um IsgcFuture<string> que é resolvido com o corpo da resposta. Chame Await para bloquear até a resposta chegar, ThenProc para consumir o corpo em uma continuação, OnError para tratar falhas e Cancel para abortar a requisição.
PostFuture é a contraparte no estilo future do método síncrono Post: a requisição é executada em uma thread em segundo plano e o método retorna imediatamente, de modo que a thread chamadora nunca é bloqueada. Ao contrário de PostAsync, nenhum manipulador de eventos é necessário: a resposta é entregue através do future retornado. Chamar Cancel desconecta o cliente, de modo que uma requisição ainda aguardando sua resposta é abortada em vez de ser executada até o fim; uma requisição abortada ou com falha rejeita o future com uma exceção entregue a OnError (ou relançada por Await). Requer Delphi 2010 ou posterior (e C++Builder 2010 ou posterior); não está disponível na edição .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;