TsgcHTTP2Client › メソッド › Patch
ターゲットリソースへの部分的な変更を適用する同期 HTTP/2 PATCH を実行します。
function Patch(const aURL: string; const aSource: TStream): string;
| 名前 | タイプ | 説明 |
|---|---|---|
aURL | const string | 部分的に更新されるリソースの絶対URL。 |
aSource | const TStream | パッチドキュメントを保持するストリーム(例: JSON パッチまたは JSON マージパッチ本文)。 |
サーバーから返されるレスポンスボディを文字列としてデコードしたものです。(string)
PUT とは異なり、PATCH は変更すべきフィールドのみを送信します。Request.ContentType がサーバーが期待するパッチ形式(例: application/json-patch+json または 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);
| 名前 | タイプ | 説明 |
|---|---|---|
aURL | const string | 部分的に更新されるリソースの絶対URL。 |
aSource | const TStream | パッチペイロードを含むストリーム。 |
aResponseContent | const TStream | サーバーからの生のレスポンスをキャプチャするストリーム。 |
完全にストリーミングされるバリアント。パッチドキュメントまたはレスポンス表現が、文字列のラウンドトリップが無駄になるほど大きい場合に適しています。
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;