TsgcHTTP2ClientMetody › Patch

Patch Metoda

Wykonuje synchroniczne żądanie HTTP/2 PATCH, stosując częściową modyfikację zasobu docelowego.

Przeciążenia

Przeciążenie 1

Składnia

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

Parametry

NazwaTypOpis
aURLconst stringBezwzględny URL zasobu, który ma być częściowo zaktualizowany.
aSourceconst TStreamStrumień zawierający dokument poprawek (na przykład treść JSON Patch lub JSON Merge Patch).

Wartość zwracana

Treść odpowiedzi zwrócona przez serwer zdekodowana jako ciąg znaków. (string)

Uwagi

W odróżnieniu od PUT, PATCH przesyła jedynie pola, które mają zostać zmienione. Należy upewnić się, że Request.ContentType odpowiada formatowi patch oczekiwanemu przez serwer (np. application/json-patch+json lub application/merge-patch+json).

Przykład

oBody := TStringStream.Create('{"email":"new@example.com"}');
try
  oClient.Request.ContentType := 'application/merge-patch+json';
  vResponse := oClient.Patch('https://api.example.com/users/42', oBody);
finally
  oBody.Free;
end;

Przeciążenie 2

Składnia

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

Parametry

NazwaTypOpis
aURLconst stringBezwzględny URL zasobu, który ma być częściowo zaktualizowany.
aSourceconst TStreamStrumień zawierający ładunek poprawki.
aResponseContentconst TStreamStrumień przechwytujący surową odpowiedź serwera.

Uwagi

W pełni strumieniowany wariant. Odpowiedni, gdy dokument patch lub reprezentacja odpowiedzi są wystarczająco duże, że konwersja do ciągu znaków byłaby nieefektywna.

Przykład

oIn := TFileStream.Create('patch.json', fmOpenRead);
oOut := TMemoryStream.Create;
try
  oClient.Patch('https://api.example.com/users/42', oIn, oOut);
finally
  oOut.Free;
  oIn.Free;
end;

Powrót do metod