删除身体请求

时间:2014-10-31 23:32:00

标签: retrofit

我正在使用Retrofit,我想用tge delete方法发出请求。我想使用特定的主体,但删除方法不支持。我为delete方法创建了自定义类,如下所示:

@Target(METHOD) 
@Retention(RUNTIME) 
@RestMethod( hasBody = true,value = "DELETE") 
public @interface CustomDelete {   

String value();      

 } 

但是当我使用它时,我有这个错误:

10-31 16:24:09.459: I/System.out(21090): retrofit.RetrofitError: DELETE does not support writing

3 个答案:

答案 0 :(得分:22)

试试这个(使用Retrofit 2.0):

@FormUrlEncoded
@HTTP(method = "DELETE", path = "/api/resource/etc", hasBody = true)
Call<ApiResponse> deleteSomething(@Field("id") int id);

答案 1 :(得分:2)

@HTTP(method = "DELETE",path="/api/v1/media/{username}/{accesstoken}", hasBody = true)
Call<MyResponse> deleteArchiveMedia(@Path("username") String username, @Path("accesstoken") String token  ,
                                    @Body DeleteMedia deleteMedia);

答案 2 :(得分:1)

我遇到DELETE的问题,但是更基本的问题,并发现了这个讨论。在我看来,它可能会回答你的问题。

https://github.com/square/retrofit/issues/426

我的问题是,无论何时我定义我的界面,它都会在METHOD和RUNTIME上给出语法错误。 我是否需要在某处包含某些内容才能使用它?