Dmi*_*din 8 android rx-java retrofit
我的请求应该获得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());
}
}
Run Code Online (Sandbox Code Playgroud)
Bla*_*elt 11
由于您使用的是RxJava,onError因此在网络错误和端点相关错误的情况下被调用是其中的一部分Response.如果出现错误,请检查throwable是否是HttpException的实例
public void onError(Throwable e) {
if (e instanceof HttpException) {
Run Code Online (Sandbox Code Playgroud)
如果检查结果为true,则表示您的请求中存在错误.将throwable转换为HttpException,并且访问是成员.例如
((HttpException) e).response().errorBody()
Run Code Online (Sandbox Code Playgroud)
如果检查,false那么您有网络相关的错误.