gpt4 book ai didi

android - 如何使用 RxJava2 和 Retrofit2 处理 No Content 响应

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:38 25 4
gpt4 key购买 nike

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

最佳答案

您可以使用 Completable , Observable<ResponseBody>Observable<Response<T>>在这种情况下你会得到 204没有得到转换器异常的响应。

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

如果是ResponseBody所有类型的有效 HTTP 响应都不会被转换为对象,并且最终会在 onNext 中结束。 , 包括 4xx5xx回应。

如果是Response<T>只有 2xx 响应会被转换,可能包括 HTTP 204响应代码。所以我不确定你应该使用它,尽管在这种情况下所有有效的 HTTP 响应也将以 onNext 结束。 , 包括 4xx5xx回应。

关于android - 如何使用 RxJava2 和 Retrofit2 处理 No Content 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40719239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com