android– 如何使用RxJava2 et Retrofit2处理无内容响应

android– 如何使用RxJava2 et Retrofit2处理无内容响应,第1张

概述我正在使用RxJava2&Retrofit2(https://github.com/JakeWhartonetrofit2-rxjava2-adapter),我想知道如何处理无响应(204)类型.在rxjava1中我使用了Observable<Void>但rxjava2不允许这样做(https://github.com/ReactiveX/RxJava/wiki/What’s-different-in-2.0–>Nulls)

我正在使用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)

现在,我已经破解了绕过自定义类型的Json解析(我称之为NoContent),但我想知道是否有更好的方法.

编辑:

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();        }    }}

解决方法:

您可以使用Completable,Observable< ResponseBody>或可观察的<响应< T>>在这种情况下,您将获得204响应而不会获得转换器异常.

这里最好的选择可能是使用Completable作为返回类型.来自服务器的所有2xx响应都将以onComplete结尾.其他将最终在onError.

在ResponseBody的情况下,所有类型的有效http响应都不会转换为Object,最终将在onNext中,包括4xx和5xx响应.

在响应< T>的情况下只会转换2xx个响应,包括http 204响应代码.所以我不确定你应该使用它,虽然在这种情况下所有有效的http响应也将在onNext中结束,包括4xx和5xx响应.

总结

以上是内存溢出为你收集整理的android – 如何使用RxJava2 et Retrofit2处理无内容响应全部内容,希望文章能够帮你解决android – 如何使用RxJava2 et Retrofit2处理无内容响应所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存