我正在使用Observable<Void>
&amp; public class NoContent {
public static class GsonTypeAdapter extends TypeAdapter<NoContent> {
@Override
public void write(JsonWriter out, NoContent value) throws IOException {
out.nullValue();
}
@Override
public NoContent read(JsonReader in) throws IOException {
return new NoContent();
}
}
}
(issue #32)我想知道如何处理无响应(204)类型。
在rxjava1中我使用users
但rxjava2不再允许它(https://github.com/JakeWharton/retrofit2-rxjava2-adapter - &gt; Nulls)
现在,我已经破解了绕过自定义类型的Json解析(我称之为NoContent),但我想知道是否有更好的方法。
编辑:
tasks
答案 0 :(得分:1)
如果您要获得Completable
响应,则可以使用Observable<ResponseBody>
,Observable<Response<T>>
或204
,而不会获得转换器例外。
这里最好的选择可能是使用Completable
作为返回类型。来自服务器的所有2xx
响应都将以onComplete
结尾。其他内容最终会出现在onError
。
如果ResponseBody
,所有有效的HTTP响应都不会转换为对象,最终会以onNext
结尾,包括4xx
和5xx
响应。
如果Response<T>
只会转换2xx个响应,包括可能是HTTP 204
响应代码。所以我不确定您是否应该使用它,尽管在这种情况下所有有效的HTTP响应也会以onNext
结尾,包括4xx
和5xx
响应。