gpt4 book ai didi

android - 处理 Retrofit 2 RX 中的错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:06 25 4
gpt4 key购买 nike

我的请求应该得到 POJO 的 JSON 或 JSON 描述的错误(可能是无效的请求字段、服务器问题等)。

但是订阅者中的改造只给我 Throwable。怎么才能知道是不是网络错误,什么是http码,得到有错误的json?

private class ProjectListSubscriber extends Subscriber<ProjectListResponse> {

@Override
public void onCompleted() {
}

@Override
public void onError(Throwable e) {
//is that a network? http code? convert json to error POJO?
}

@Override
public void onNext(ProjectListResponse projectListResponse) {
updateProjectList(projectListResponse.getProjectList());
}
}

最佳答案

由于您使用的是 RxJava,因此在出现网络错误时会调用 onError,并且与端点相关的错误是 Response 的一部分。如果出现错误,请检查 throwable 是否是 HttpException 的实例

public void onError(Throwable e) {
if (e instanceof HttpException) {

如果检查为真,则说明您的请求有误。将 throwable 转换为 HttpException,并且访问是成员。例如。

((HttpException) e).response().errorBody()

如果检查结果为 false,那么您遇到了与网络相关的错误。

关于android - 处理 Retrofit 2 RX 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33983022/

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