2011-09-29 6 views
2

데이터 삭제를 위해 웹 서비스를 호출해야하며 HttpDelete를 사용해야합니다. 이 서비스는 JSON 객체를 매개 변수로 사용합니다.Android에서 JSON 페이로드가있는 HttpDelete 요청

전에 SetEntity를 사용하여 HttpPost를 수행했지만이 작업은 HttpDelete에서 사용할 수 없습니다.

http://url/DELETE/service과 같은 호출이며 매개 변수는 { id: "xxxxxxx", id2: 11 }입니다.

나는 이것에 대한 좋은 정보를 찾을 수 없습니다. 어떤 아이디어?

+0

가능한 복제본 : [HttpDelete with body] (http://stackoverflow.com/q/3773338/842697) –

답변

1

HTTP DELETE 요청으로 본문을 전송할 수 없습니다.

이렇게해야하는 경우 REST 디자인에 문제가있을 수 있습니다.

본체가 http://url/DELETE/service 인 대신 http://url/srvice/xxxxxx/11이 아닌 이유는 무엇입니까?

1

RFC2616은 HTTP DELETE 요청에서 엔티티에 대해 아무것도 지정하지 않습니다. 최선의 방법은 요청한 경로에 필요한 값을 전달하는 것입니다.

에 http : // URL/삭제/서비스/XXXXXX/11

0

ID입니다 가장 가능성이 URL에 전달 또는 아마도 헤더 값에 전달 될 수있다. 다음은 그 예입니다.

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

유용한 사례가 있습니다. 지금 내가 실행중인 것은 "일괄 삭제"가 필요하다는 것입니다. 기본적으로 효율성상의 이유로 한 번에 하나의 항목을 삭제하는 것은 한 번에 여러 항목을 삭제하는 것보다 느립니다. 나는 POST를 사용하고 un-RESTful이되도록 강요 당한다. 내 의견으로는, 이것은 REST의 디자인 결함이거나 적어도 디자인상의 제한 사항입니다.