TsgcHTTP2ClientMétodos › Post

Post Método

Realiza um POST HTTP/2 síncrono, fazendo upload de um stream e bloqueando até que a resposta seja recebida.

Overloads

Overload 1

Sintaxe

function Post(const aURL: string; const aSource: TStream): string;

Parâmetros

NameTypeDescrição
aURLconst stringURL absoluta que receberá a requisição POST.
aSourceconst TStreamStream contendo o corpo da requisição a enviar (upload). Seu Size define o pseudo-cabeçalho content-length.

Valor de retorno

Corpo de resposta recebido do servidor decodificado como string. (string)

Observações

Utilize esta sobrecarga para trocas textuais como JSON ou form data onde a resposta completa pode ser retornada como string. Configure Request.ContentType antes de chamar para anunciar o tipo de mídia do corpo.

Exemplo

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

Sobrecarga 2

Sintaxe

procedure Post(const aURL: string; const aSource: TStream; const aResponseContent: TStream);

Parâmetros

NameTypeDescrição
aURLconst stringURL absoluta que receberá a requisição POST.
aSourceconst TStreamStream que fornece o payload da requisição.
aResponseContentconst TStreamStream que receberá os bytes brutos da resposta do servidor; útil para respostas binárias ou grandes.

Observações

Variante totalmente baseada em stream: tanto a carga útil da requisição quanto a resposta do servidor são tratadas através de instâncias TStream, evitando o overhead de uma conversão de string em qualquer lado. Prefira esta sobrecarga para uploads de arquivos que retornam cargas úteis binárias.

Exemplo

oIn := TFileStream.Create('upload.bin', fmOpenRead);
oOut := TMemoryStream.Create;
try
  oClient.Post('https://api.example.com/upload', oIn, oOut);
finally
  oOut.Free;
  oIn.Free;
end;

Voltar para Métodos