TsgcHTTP2ClientMethods › Post

Post Metoda

Wykonuje synchroniczne żądanie HTTP/2 POST, przesyłając strumień i blokując wykonanie do momentu otrzymania odpowiedzi.

Przeciążenia

Przeciążenie 1

Składnia

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

Parametry

NazwaTypOpis
aURLconst stringBezwzględny adres URL, który odbierze żądanie POST.
aSourceconst TStreamStrumień zawierający treść żądania do przesłania. Jego właściwość Size ustawia pseudonagłówek content-length.

Wartość zwracana

Treść odpowiedzi odebrana z serwera, zdekodowana jako ciąg znaków. (string)

Uwagi

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.

Przykład

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

Przeciążenie 2

Składnia

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

Parametry

NazwaTypOpis
aURLconst stringBezwzględny adres URL, który odbierze żądanie POST.
aSourceconst TStreamStrumień dostarczający ładunek żądania.
aResponseContentconst TStreamStrumień, który otrzyma surowe bajty odpowiedzi serwera; przydatne w przypadku odpowiedzi binarnych lub dużych.

Uwagi

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.

Przykład

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;

Powrót do metod