1
응답이 성공적이지 않은 경우 내지도에서 오류를 처리하고 싶습니다. 나는이 기사 Error handling in Retrofit에서 RetrofitException을 사용하려했지만 실패했다.지도에서 조정 + rx 오류 처리
이것은 내 관찰 가능한
public Observable<JsonElement> commonResponse(final Object request, String method, final Context context) {
Log.v("method", method);
//Create Request
Map<String, Object> data = ApiHelper.commonParams(request, method, context);
return apiService.commonResponse(method, data)
.subscribeOn(Schedulers.newThread())
.observeOn(Schedulers.immediate())
.map(new Func1<Response<BaseResponse>, JsonElement>() {
@Override
public JsonElement call(Response<BaseResponse> response) {
if (!response.isSuccessful()) {
//throwException(response);
}
BaseResponse baseResponse = response.body();
return baseResponse.getData();
}
});
}
이 내 개조
private static HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
private static Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(ApiService.API_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create());
public static Retrofit retrofit = builder.client(httpClient.addInterceptor(logging.setLevel(HttpLoggingInterceptor.Level.BASIC)).build()).build();
public static ApiService retrofitCreate() {
return retrofit.create(ApiService.class);
}
** 구독 ** 있습니다. 다른 클래스에 있습니다. 지도에서 throwable을 onError에 전달해야합니다. –
@AlexCrow는 try catch에 넣고 Observer.error (t)는 문제를 해결하지 못합니까? – Amir