Запрос HttpDelete с полезной нагрузкой JSON в Android - PullRequest
2 голосов
/ 29 сентября 2011

Мне нужно вызвать веб-сервис для удаления данных, и мне нужно сделать это с помощью HttpDelete.Служба принимает объект JSON в качестве параметра.

Я делал HttpPost раньше, используя SetEntity, но это не доступно с HttpDelete.

Это вызов типа http://url/DELETE/service и что-токак { id: "xxxxxxx", id2: 11 } в качестве параметра.

Я не могу найти хорошую информацию по этому вопросу.Есть идеи?

Ответы [ 4 ]

1 голос
/ 29 сентября 2011

Вы не можете отправить тело в HTTP-запросе DELETE.

Если вам нужно сделать это, возможно, что-то не так с вашим дизайном REST.

Почему бы не http://url/srvice/xxxxxx/11 вместо http://url/DELETE/service с телом?

1 голос
/ 29 сентября 2011

RFC2616 не указывает ничего о сущности в запросе HTTP DELETE. Я бы сказал, что вам лучше всего указать нужные вам значения в пути вашего запроса.

http: // url / DELETE / service / xxxxxx / 11

0 голосов
/ 13 декабря 2012

Есть случаи, когда это было бы здорово.Одна из них, с которой я сейчас сталкиваюсь, - это необходимость «массового удаления».В основном, из соображений эффективности, удаление одной записи за раз происходит намного медленнее, чем удаление нескольких записей одновременно.Я вынужден использовать POST и быть не RESTful.На мой взгляд, это недостаток дизайна в REST или, по крайней мере, ограничение дизайна.

0 голосов
/ 29 сентября 2011

Идентификатор, скорее всего, передается в URL, ИЛИ может быть передан в значении заголовка.Вот пример:

HttpDelete httpdelete = new HttpDelete(targetURL);                              
httpdelete.setHeader("id",id);  // If not in the url, this could be where the id is set.
...