У меня есть следующий код, в котором я отлавливаю код ответа и бросаю собственные исключения.
OkHttpClient httpClient = new OkHttpClient.Builder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(1, TimeUnit.MINUTES)
.addInterceptor(chain -> {
Request.Builder ongoing = chain.request().newBuilder();
//...
//build request
Request request = ongoing.build();
Response response = null;
//process request
try {
response = chain.proceed(request);
} catch (IOException e) {
throw new NetworkException(e.getMessage());
}
if (response.code() == 400){
throw new ClientRequestException();
}
return response;
})
.build();
retrofit = new Retrofit.Builder()
.client(httpClient)
.baseUrl(BASE_URL)
.addConverterFactory(new NullOnEmptyConverterFactory())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
Но в таком случае, мне нужно добавлять сообщение исключения самостоятельно,
вопрос могу ли я как то из response получить текст ошибки которую мне отдает сервер?
Ответ
Тело ответа, где содержится ошибка может быть получено так:
String body = response.body();
Комментариев нет:
Отправить комментарий