TsgcHTTP2ClientMetodi › Post

Post Metodo

Esegue un POST HTTP/2 sincrono, caricando uno stream e bloccando fino alla ricezione della risposta.

Overload

Overload 1

Sintassi

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

Parametri

NomeTipoDescrizione
aURLconst stringURL assoluto che riceverà la richiesta POST.
aSourceconst TStreamStream contenente il corpo della richiesta da caricare. La sua Size imposta lo pseudo-header content-length.

Valore restituito

Corpo della risposta ricevuta dal server decodificato come stringa. (string)

Note

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.

Esempio

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

Sovraccarico 2

Sintassi

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

Parametri

NomeTipoDescrizione
aURLconst stringURL assoluto che riceverà la richiesta POST.
aSourceconst TStreamStream che fornisce il payload della richiesta.
aResponseContentconst TStreamStream che riceverà i byte di risposta grezzi del server; utile per risposte binarie o di grandi dimensioni.

Note

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.

Esempio

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;

Torna ai Metodi