【发布时间】:2016-03-11 13:59:39
【问题描述】:
我在我的项目中使用带有 Observable 接口和 Result 包装器的 Retrofit 2.0。 方法:
Observable<CompanyModel> companyList(@Query("userAcc") String userAcc,
@Query("password") String password);
代码:
RetrofitHelper.getCompanyList(userName, password).subscribe(new Observer<CompanyModel>() {
@Override
public void onCompleted() {
System.out.println("Observable completed");
}
@Override
public void onError(Throwable e) {
System.out.println("Observable error");
}
@Override
public void onNext(CompanyModel companyModel) {
List<Company> company = companyModel.getCompany();
System.out.println("Observable next");
}
});
我想在错误发生时得到响应,但是 onError 返回 Throwable。 如何获得响应?
【问题讨论】:
-
在改造 1.9 中,throwable 实际上是一个 RetrofitError,你可以在上面得到这样的 Body:
((RetrofitError) e).getBodyAs(CompanyModel.class)。不确定它如何与改造 2 一起使用,但我会首先在onError中放置一个断点,然后更仔细地检查该 throwable 中的确切内容 -
@njzk2 throwable 可能是 SocketTimeoutException,JSONException...问题是我可以得到一个 JSONException ,但是我无法得到响应,看不到 JSONObject 的返回字符串,无法得到状态码