Или посмотрите на библиотеку Synapse с открытым исходным кодом. В модуле HTTPSend есть несколько простых вызовов функций, которые делают реализацию этого абсолютно безболезненной. Просто используйте примеры функций / процедур в качестве модели для PUT / DELETE. Существующие подпрограммы уже предоставляют POST и GET. Разница заключается в методе пройдено.
Лично я обнаружил, что эта библиотека идеально подходит для работы с REST. Это просто, хорошо написано и легко расширяется.
Например, вот простой пут, который отправляет и получает поток:
function HttpPutBinary(const URL: string; const Data: TStream): Boolean;
var
HTTP: THTTPSend;
begin
HTTP := THTTPSend.Create;
try
HTTP.Document.CopyFrom(Data, 0);
HTTP.MimeType := 'Application/octet-stream';
Result := HTTP.HTTPMethod('PUT', URL); // changed method from 'POST'
Data.Size := 0;
if Result then
begin
Data.Seek(0, soFromBeginning);
Data.CopyFrom(HTTP.Document, 0);
end;
finally
HTTP.Free;
end;
end;