【问题标题】:Delete request with body删除带有正文的请求
【发布时间】:2018-01-20 03:03:38
【问题描述】:

我正在使用 Retrofit,我想使用 tge 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

【问题讨论】:

    标签: retrofit


    【解决方案1】:

    试试这个(使用 Retrofit 2.0):

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

    【讨论】:

      【解决方案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);
      

      【讨论】:

        【解决方案3】:

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

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

        我的问题是,每当我定义我的接口时,它都会在 METHOD 和 RUNTIME 上给我一个语法错误。 我是否需要在某个地方添加一些东西才能使用它?

        【讨论】:

          猜你喜欢
          • 2018-12-06
          • 2022-01-24
          • 2016-01-12
          • 1970-01-01
          • 2016-08-24
          • 1970-01-01
          • 2020-09-07
          • 1970-01-01
          • 2014-07-06
          相关资源
          最近更新 更多