2011-09-29 19 views
2

我需要調用Web服務來刪除數據,並且需要使用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/srvice/xxxxxx/11而不是http://url/DELETE/service帶身體?

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並且是不可恢復的。在我看來,這是REST中的一個設計缺陷,或者至少是一個設計限制。