TsgcHTTP2Client › Yöntemler › Patch
Hedef kaynağa kısmi bir değişiklik uygulayarak senkron bir HTTP/2 PATCH gerçekleştirir.
function Patch(const aURL: string; const aSource: TStream): string;
| Name | Type | Açıklama |
|---|---|---|
aURL | const string | Kısmen güncellenecek kaynağın mutlak URL'si. |
aSource | const TStream | Patch belgesini tutan akış (örneğin bir JSON Patch veya JSON Merge Patch gövdesi). |
Sunucu tarafından döndürülen ve dize olarak kodu çözülen yanıt gövdesi. (string)
PUT'tan farklı olarak, PATCH yalnızca değişmesi gereken alanları gönderir. Request.ContentType'ın sunucu tarafından beklenen patch formatıyla eşleştiğinden emin olun (örneğin application/json-patch+json veya 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 | Type | Açıklama |
|---|---|---|
aURL | const string | Kısmen güncellenecek kaynağın mutlak URL'si. |
aSource | const TStream | Yama yükünü içeren stream. |
aResponseContent | const TStream | Sunucudan gelen ham yanıtı yakalayan stream. |
Tamamen akıtılmış varyant. Patch belgesi veya yanıt temsili, bir dize gidiş dönüşünün israf olacağı kadar büyük olduğunda uygundur.
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;