TsgcHTTP2Client › Métodos › Post
Realiza um POST HTTP/2 síncrono, fazendo upload de um stream e bloqueando até que a resposta seja recebida.
function Post(const aURL: string; const aSource: TStream): string;
| Name | Type | Descrição |
|---|---|---|
aURL | const string | URL absoluta que receberá a requisição POST. |
aSource | const TStream | Stream contendo o corpo da requisição a enviar (upload). Seu Size define o pseudo-cabeçalho content-length. |
Corpo de resposta recebido do servidor decodificado como string. (string)
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.
oBody := TStringStream.Create('{"name":"John"}');
try
oClient.Request.ContentType := 'application/json';
vResponse := oClient.Post('https://api.example.com/users', oBody);
finally
oBody.Free;
end;
procedure Post(const aURL: string; const aSource: TStream; const aResponseContent: TStream);
| Name | Type | Descrição |
|---|---|---|
aURL | const string | URL absoluta que receberá a requisição POST. |
aSource | const TStream | Stream que fornece o payload da requisição. |
aResponseContent | const TStream | Stream que receberá os bytes brutos da resposta do servidor; útil para respostas binárias ou grandes. |
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.
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;