gpt4 book ai didi

android - 如何在状态代码为 400 时使用 Retrofit 和 RxJava 来获取错误消息?

转载 作者:行者123 更新时间:2023-11-30 00:32:14 25 4
gpt4 key购买 nike

<分区>

我用 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一起使用,我该如何改变它?

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