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 次 |
| 最近记录: |