<分区>
我用 Retrofit 和 RxJava 是这样的:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(HttpURL.BASE_URL)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
当请求错误时,比如密码错误,状态码是400,错误消息会int errorBoby 来得到我,就像{code: 1000, message: "password is wrong"}。
但是,gons GsonConverterFactory 不会在 respone.getErrorBody 中使用 fromJson,所以我像这样更改我的代码
Call<Result<User>> call = ApiManger.get().getLoginApi().login1(login);
call.enqueue(new Callback<Result<User>>() {
@Override
public void onResponse(Call<Result<User>> call, Response<Result<User>> response) {
if (response.code() == 0) {
mLoginView.onLoginSuccess(response.body().getData());
} else {
try {
Result result = new Gson().fromJson(response.errorBody().string(),Result.class);
ToastUtils.showShort(result.getMessage());
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<Result<User>> call, Throwable t) {
}
});
所以它不能与Rxjava一起使用,我该如何改变它?