TsgcHTTP2Client › Methoden › Patch
Voert een synchrone HTTP/2 PATCH uit en past een gedeeltelijke wijziging toe op de doelresource.
function Patch(const aURL: string; const aSource: TStream): string;
| Naam | Type | Beschrijving |
|---|---|---|
aURL | const string | Absolute URL van de resource die gedeeltelijk moet worden bijgewerkt. |
aSource | const TStream | Stream die het patchdocument bevat (bijvoorbeeld een JSON Patch- of JSON Merge Patch-body). |
Antwoordtekst geretourneerd door de server, gedecodeerd als een tekenreeks. (string)
In tegenstelling tot PUT verzendt PATCH alleen de velden die moeten worden gewijzigd. Zorg ervoor dat Request.ContentType overeenkomt met de patch-indeling die de server verwacht (bijv. application/json-patch+json of application/merge-patch+json).
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;
procedure Patch(const aURL: string; const aSource: TStream; const aResponseContent: TStream);
| Naam | Type | Beschrijving |
|---|---|---|
aURL | const string | Absolute URL van de resource die gedeeltelijk moet worden bijgewerkt. |
aSource | const TStream | Stream met de patchpayload. |
aResponseContent | const TStream | Stream die de onbewerkte respons van de server vastlegt. |
Volledig gestreamde variant. Geschikt wanneer het patch-document of de response-weergave groot genoeg is dat een string-round-trip verspilling zou zijn.
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;