TsgcHTTP2Client › Methoden › Patch
Führt ein synchrones HTTP/2-PATCH durch und wendet eine partielle Änderung auf die Zielressource an.
function Patch(const aURL: string; const aSource: TStream): string;
| Name | Typ | Beschreibung |
|---|---|---|
aURL | const string | Absolute URL der teilweise zu aktualisierenden Ressource. |
aSource | const TStream | Stream, der das Patch-Dokument enthält (zum Beispiel einen JSON-Patch- oder JSON-Merge-Patch-Body). |
Vom Server zurückgegebener Antwort-Body, dekodiert als Zeichenkette. (string)
Anders als PUT sendet PATCH nur die Felder, die sich ändern sollen. Stellen Sie sicher, dass Request.ContentType dem vom Server erwarteten Patch-Format entspricht (z. B. application/json-patch+json oder 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);
| Name | Typ | Beschreibung |
|---|---|---|
aURL | const string | Absolute URL der teilweise zu aktualisierenden Ressource. |
aSource | const TStream | Stream, der die Patch-Nutzlast enthält. |
aResponseContent | const TStream | Stream, der die rohe Antwort vom Server erfasst. |
Vollständig gestreamte Variante. Geeignet, wenn das Patch-Dokument oder die Antwortdarstellung groß genug ist, dass ein String-Roundtrip verschwenderisch wäre.
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;