TsgcHTTP2Client › Metodi › Post
Esegue un POST HTTP/2 sincrono, caricando uno stream e bloccando fino alla ricezione della risposta.
function Post(const aURL: string; const aSource: TStream): string;
| Nome | Tipo | Descrizione |
|---|---|---|
aURL | const string | URL assoluto che riceverà la richiesta POST. |
aSource | const TStream | Stream contenente il corpo della richiesta da caricare. La sua Size imposta lo pseudo-header content-length. |
Corpo della risposta ricevuta dal server decodificato come stringa. (string)
Utilizzare questo overload per scambi testuali come JSON o dati di form in cui l'intera risposta può essere restituita come stringa. Configurare Request.ContentType prima di chiamare per pubblicizzare il tipo di media del 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);
| Nome | Tipo | Descrizione |
|---|---|---|
aURL | const string | URL assoluto che riceverà la richiesta POST. |
aSource | const TStream | Stream che fornisce il payload della richiesta. |
aResponseContent | const TStream | Stream che riceverà i byte di risposta grezzi del server; utile per risposte binarie o di grandi dimensioni. |
Variante completamente basata su stream: sia il payload della richiesta che la risposta del server vengono gestiti tramite istanze TStream, evitando il sovraccarico di una conversione in stringa su entrambi i lati. Preferire questo overload per i caricamenti di file che restituiscono payload binari.
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;