2017-06-21 95 views
0

我有一个调用来发送数据到服务器。如果一切正常,服务器将返回一个无效响应。但是当出现错误时,我会收回数据。使用Retrofit 2和RxJava处理void和non-void响应2

要管理的情况时有错误我有一个CustomResponse对象。问题是,当请求成功改造投用的消息的异常:java.io.EOFException: End of input at line 1 column 1 path $

这里是电话:

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

我做了一些研究和我读,我可以用Observable<Response<Void>> ...但在这种情况下,我应该如何管理响应包含数据?

+0

它的成功时的实际响应是什么?真的没有身体吗? – TooManyEduardos

+0

响应是:'OkHttp:< - END HTTP(0字节正文)'所以确实没有任何主体。 – Eselfar

+0

的可能的复制[我怎么可以处理空的响应体与改造2?(https://stackoverflow.com/questions/33228126/how-can-i-handle-empty-response-body-with-retrofit-2) –

回答

0

我没有尝试这样做我自己,但我会创建具有您CustomResponse作为一个可空的包装类开始。

事情是这样的:

public class SomeWrapper { 
    @Nullable CustomResponse customResponse; 
} 

然后在你的改装/接收呼叫,你可以把它改成这样:

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

给一个镜头,让我知道,如果它的工作原理。

+0

Thx,但它不起作用。 Retrofit试图解析JSON,但由于没有主体,它仍然失败。 – Eselfar

+0

废话。对不起。 – TooManyEduardos