TsgcHTTP2Client › Methods › Post
Wykonuje synchroniczne żądanie HTTP/2 POST, przesyłając strumień i blokując wykonanie do momentu otrzymania odpowiedzi.
function Post(const aURL: string; const aSource: TStream): string;
| Nazwa | Typ | Opis |
|---|---|---|
aURL | const string | Bezwzględny adres URL, który odbierze żądanie POST. |
aSource | const TStream | Strumień zawierający treść żądania do przesłania. Jego właściwość Size ustawia pseudonagłówek content-length. |
Treść odpowiedzi odebrana z serwera, zdekodowana jako ciąg znaków. (string)
Tego przeciążenia należy używać do wymiany tekstowej, np. danych JSON lub formularzy, gdzie pełna odpowiedź może być zwrócona jako ciąg znaków. Przed wywołaniem należy skonfigurować właściwość Request.ContentType, aby zadeklarować typ nośnika treści.
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);
| Nazwa | Typ | Opis |
|---|---|---|
aURL | const string | Bezwzględny adres URL, który odbierze żądanie POST. |
aSource | const TStream | Strumień dostarczający ładunek żądania. |
aResponseContent | const TStream | Strumień, który otrzyma surowe bajty odpowiedzi serwera; przydatne w przypadku odpowiedzi binarnych lub dużych. |
W pełni oparte na strumieniach wariant: zarówno ładunek żądania, jak i odpowiedź serwera są obsługiwane przez instancje TStream, co eliminuje narzut konwersji ciągu znaków po obu stronach. To przeciążenie należy preferować przy przesyłaniu plików zwracających binarne ładunki.
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;