【问题标题】:Defining Retrofit2 interface - Method without Response body定义 Retrofit2 接口 - 没有响应体的方法
【发布时间】:2018-07-11 09:23:25
【问题描述】:

我在 Retrofit2 接口中定义 Call 对象,以使用外部 Rest API。

对于大多数调用,我们有类似的内容:

@POST("/api/v1/methodEndPoint")
public Call<MethodResponse> methodName(@Body MethodRequest methodRequest);

但是,我的问题是:如果没有响应对象(PO​​ST 调用,没有响应主体,我们只关心状态),我应该如何定义方法。如果我只写以下内容,改造会引发异常:

@POST("/api/v1/methodEndPoint")
public Call methodName(@Body MethodRequest methodRequest);

感谢您的帮助,祝您有愉快的一天!

【问题讨论】:

    标签: java rest retrofit2


    【解决方案1】:

    Retrofit 2中定义一个没有任何响应的方法,方法的返回类型应该是Void

    你可以试试:

    @POST("/api/v1/methodEndPoint")
    Call <Void> methodName(@Body MethodRequest methodRequest);
    

    【讨论】:

      【解决方案2】:

      使用ResponseBody。基本上,你可以这样做:

      @POST("/api/v1/methodEndPoint")
      public Call<ResponseBody> methodName(@Body MethodRequest methodRequest);
      

      您将可以访问onResponseonFailure 回调,但不会尝试数据反序列化

      【讨论】:

        猜你喜欢
        • 2017-07-27
        • 2015-12-28
        • 2019-02-24
        • 1970-01-01
        • 2019-04-15
        • 2014-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多