因此,当登录成功没有问题时,我已经从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)