Indy's TIdHttp
класс имеет - в последней версии - a Delete()
рутину. Но по какой-то причине это процедура, а не функция. Put()
, Get()
и т. Д. - все функции, возвращающие содержимое тела ответа. Либо в виде строки, либо доставить ее до TStream
. Это невозможно с Delete()
, что противоречит DELETE
«ы определения:Как получить текст ответа DELETE с помощью TIdHttp?
В случае успешного ответа ДОЛЖЕН быть 200 (ОК), если ответ включает объект, описывающий состояние, 202 (Accepted), если действие не имеет все же было принято или 204 (без содержимого), если действие было принято, но ответ не включает сущность.
Я тогда попытался использовать GetResponse()
, но вместо этого просто закрыл мое соединение изящно, не заполняя ответ.
Как я могу прочитать содержимое тела ответа из ответа DELETE?
Как насчет 'собственности TIdHttp.ResponseText'? в любом случае, что вы ожидаете найти в тексте ответа? (кроме тестирования для 'ResponseCode') – kobik
' TIdHttp.ResponseText', по-видимому, не так, как я думал. Он тесно связан с «ResponseCode», поэтому в ответе 200 «TIdHttp.ResponseText» содержит «HTTP/1.1 200 OK», а не тело ответа. На данный момент моя работа может работать без данных, но она просто возвращала идентификатор удаляемого элемента, поэтому я мог проверить, что он удалил нужный элемент. – Svip
Я никогда не использовал метод DELETE, но я думаю, вы могли бы вернуть этот идентификатор в заголовках ответов. Кроме того, я предполагаю, что вы управляете сервером, и я не уверен, почему вам нужно использовать метод DELETE в первую очередь. почему бы не использовать 'GET' или' POST' и указать в параметрах запроса, какой ресурс удалить? – kobik