Как я могу выполнить HTTP-запрос DELETE с телом?

Я хочу выполнить HTTP-запрос DELETE с xml в теле (а не в форме). Как я могу выполнить этот HTTP-запрос DELETE?

Я пробовал с HttpURLConnection, но есть некоторые ограничения.

Я также пытался использовать HttpClient Apache. Но я не знаю, как отправить xml без структуры application/x-www-form-urlencoded.


person Brais Gabin    schedule 26.02.2013    source источник
comment
Что ж, тело запроса HTTP на основе REST API поддерживается. Но я нигде не нашел, что он реализовал тело запроса для удаления. Хм, интересно   -  person Lithu T.V    schedule 26.02.2013
comment
возможный дубликат HttpDelete с телом   -  person Marcin Orlowski    schedule 08.04.2013
comment
@WebnetMobile, это не дубликат. HttpDelete с телом решает проблему, если вы хотите отправить структуру application/x-www-form-urlencoded, но не работает с необработанными данными (например, xml) .   -  person Brais Gabin    schedule 08.04.2013
comment
Отвечает ли это на ваш вопрос? HttpDelete с телом   -  person Jacob van Lingen    schedule 14.12.2020


Ответы (2)


Этот код сделает это:

try {
        HttpEntity entity = new StringEntity(jsonArray.toString());
        HttpClient httpClient = new DefaultHttpClient();
        HttpDeleteWithBody httpDeleteWithBody = new HttpDeleteWithBody("http://10.17.1.72:8080/contacts");
        httpDeleteWithBody.setEntity(entity);

        HttpResponse response = httpClient.execute(httpDeleteWithBody);

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

Чтобы получить доступ к ответу, вы можете просто сделать: response.getStatusLine();

А вот определение класса HttpDeleteWithBody: HttpDeleteWithBody

person dazito    schedule 10.04.2014

почему бы не сделать это с HttpClient

class MyDelete extends HttpPost{
    public MyDelete(String url){
        super(url);
    }
    @Override
    public String getMethod() {
        return "DELETE";
    }

}

это работает хорошо.

person Ishan Liyanage    schedule 06.06.2013