TsgcHTTP2Client › Methods › Post
Voert een synchrone HTTP/2 POST uit, uploadt een stream en blokkeert totdat de respons is ontvangen.
function Post(const aURL: string; const aSource: TStream): string;
| Naam | Type | Beschrijving |
|---|---|---|
aURL | const string | Absolute URL die het POST-verzoek ontvangt. |
aSource | const TStream | Stream die de aanvraagtekst bevat om te uploaden. De Size ervan stelt de pseudo-header content-length in. |
Responsebody die van de server is ontvangen, gedecodeerd als een string. (string)
Gebruik deze overload voor tekstuele uitwisselingen zoals JSON of formuliergegevens waarbij de volledige response als een string kan worden geretourneerd. Configureer Request.ContentType voordat u aanroept om het mediatype van de body aan te kondigen.
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);
| Naam | Type | Beschrijving |
|---|---|---|
aURL | const string | Absolute URL die het POST-verzoek ontvangt. |
aSource | const TStream | Stream die de verzoekpayload levert. |
aResponseContent | const TStream | Stream die de ruwe antwoordbytes van de server ontvangt; nuttig voor binaire of grote antwoorden. |
Volledig stream-gebaseerde variant: zowel de aanvraaglading als de serverrespons worden verwerkt via TStream-instanties, waardoor de overhead van een tekenreeksconversie aan beide zijden wordt vermeden. Gebruik deze overload bij voorkeur voor bestandsuploads die binaire payloads retourneren.
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;