【问题标题】:Handle Void and Non-Void response with Retrofit 2 and RxJava 2使用 Retrofit 2 和 RxJava 2 处理 Void 和 Non-Void 响应
【发布时间】:2017-11-24 16:16:25
【问题描述】:

我有一个向服务器发送数据的呼叫。如果一切正常,服务器将返回无效响应。但是当出现错误时,我会返回数据。

为了处理出现错误时的情况,我有一个CustomResponse 对象。问题是当请求成功时,Retrofit 会抛出异常并显示消息:java.io.EOFException: End of input at line 1 column 1 path $

来电:

@POST("/updateObject")
Observable<CustomResponse> updateObject(@Body CustomObject requestData);

我做了一些研究,发现我可以使用Observable&lt;Response&lt;Void&gt;&gt; ...,但在这种情况下,当响应包含数据时我应该如何管理?

【问题讨论】:

标签: java android retrofit2 rx-java2


【解决方案1】:

我自己没有尝试过,但我会先创建一个包装类,将您的CustomResponse 作为可空值。

类似这样的:

public class SomeWrapper {
    @Nullable CustomResponse customResponse;
}

然后在您的 Retrofit/Rx 调用中,您可以将其更改为:

@POST("/updateObject")
Observable<SomeWrapper> updateObject(@Body CustomObject requestData);

试一试,如果可行,请告诉我。

【讨论】:

  • 谢谢,但它不起作用。 Retrofit 尝试解析 JSON,但由于没有正文,它仍然失败。
猜你喜欢
  • 2018-10-26
  • 2016-08-29
  • 2016-02-17
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多