TsgcHTTP2Client › Métodos › Post
Realiza un POST HTTP/2 síncrono, cargando un flujo y bloqueando hasta recibir la respuesta.
function Post(const aURL: string; const aSource: TStream): string;
| Nombre | Tipo | Descripción |
|---|---|---|
aURL | const string | URL absoluta que recibirá la solicitud POST. |
aSource | const TStream | Flujo que contiene el cuerpo de la solicitud a cargar. Su Size establece el pseudoencabezado content-length. |
Cuerpo de respuesta recibido del servidor decodificado como cadena de texto. (string)
Utilice esta sobrecarga para intercambios de texto como JSON o datos de formulario donde la respuesta completa puede devolverse como cadena. Configure Request.ContentType antes de llamar para indicar el tipo de medio del cuerpo.
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);
| Nombre | Tipo | Descripción |
|---|---|---|
aURL | const string | URL absoluta que recibirá la solicitud POST. |
aSource | const TStream | Flujo que proporciona la carga útil de la solicitud. |
aResponseContent | const TStream | Flujo que recibirá los bytes de respuesta sin procesar del servidor; útil para respuestas binarias o de gran tamaño. |
Variante completamente basada en flujos: tanto la carga útil de la solicitud como la respuesta del servidor se gestionan mediante instancias de TStream, evitando la sobrecarga de una conversión de cadena en ambos extremos. Prefiera esta sobrecarga para cargas de archivos que devuelven cargas binarias.
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;