小编Dio*_*osa的帖子

改造2 + Rxjava处理错误

因此,当登录成功没有问题时,我已经从Json收到一个令牌,并收到哈希

但是当来自服务器的响应是一个错误时,我无法得到Json消息({message:"错误:错误的电子邮件}"因为在onError中我们只得到一个Throwable作为参数而不是像on on那样的模型类

如何从服务器onError获取json消息?

final Observable<TokenResponse> observable = Service.login(userCredentials);
    observable.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<TokenResponse>() {
                String error="";

                @Override
                public void onCompleted() {
                    mLoginView.whenLoginSucess();
                }

                @Override
                public void onError(Throwable e) {

                    if (e instanceof HttpException) {
                        HttpException exception = (HttpException) e;
                        Response response = exception.response();
                        Converter<ResponseBody, ErrorFromServer> converter = new GsonConverterFactory()
                                .responseBodyConverter(ErrorFromServer.class, Annotation[0]);
                        ErrorFromServer error = converter.convert(response.errorBody());
                    }

                    mLoginView.errorText(error);

                    e.printStackTrace();

                }

                @Override
                public void onNext(TokenResponse tokenResponse) {


                    SharedPreferences.Editor editor = sharedP.edit();
                    editor.putString("hash", tokenResponse.getToken());
                    editor.commit();

                    //getString return key value "hash" if there is …
Run Code Online (Sandbox Code Playgroud)

error-handling android json rx-java retrofit

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

error-handling ×1

json ×1

retrofit ×1

rx-java ×1