TsgcHTTP2ClientMétodos › PostFuture

PostFuture Método

Executa um POST HTTP/2 em uma thread em segundo plano e retorna um future que é resolvido com o corpo da resposta.

Sintaxe

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

Parâmetros

NameTypeDescrição
aURLconst stringURL absoluta que receberá a requisição POST.
aDataTStreamStream 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.

Valor de retorno

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.

Observações

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.

Exemplo

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;

Voltar para Métodos