Rom*_*ain 5 android retrofit2 rx-java2
我正在使用RxJava 2
& Retrofit 2
(https://github.com/JakeWharton/retrofit2-rxjava2-adapter),我想知道如何处理无响应(204)类型。在 rxjava1 中,我正在使用Observable<Void>
,但 rxjava2 不再允许它(https://github.com/ReactiveX/RxJava/wiki/What's- Different-in-2.0 -> Nulls )
现在,我已经绕过自定义类型(我称之为 NoContent)的 Json 解析,但我想知道是否有更好的方法。
编辑:
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用Completable
,Observable<ResponseBody>
或Observable<Response<T>>
在您将获得204
响应而不会出现转换器异常的情况下。
这里最好的选择可能是用作Completable
返回类型。来自服务器的所有2xx
响应都将以onComplete
. 其他将最终在onError
.
如果ResponseBody
所有类型的有效 HTTP 响应都不会转换为对象,并且最终会出现在onNext
,包括4xx
和5xx
响应中。
如果Response<T>
只有 2xx 响应将被转换,可能包括 HTTP204
响应代码。所以我不确定你应该使用它,尽管在这种情况下所有有效的 HTTP 响应也将以onNext
,包括4xx
和5xx
响应结束。
归档时间: |
|
查看次数: |
1267 次 |
最近记录: |