Как получить текст ошибки запроса Retrofit

212
10 декабря 2017, 11:14

У меня есть следующий код, в котором я отлавливаю код ответа и бросаю собственные исключения.

    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 получить текст ошибки которую мне отдает сервер?

Answer 1

Тело ответа, где содержится ошибка может быть получено так:

 String body = response.body();
READ ALSO
Cоздание документа формата doc

Cоздание документа формата doc

Каким образом создать документ формата doc ? Если можно, с примером

182
Mediaplayer array как создать?

Mediaplayer array как создать?

MediaPlayer mp = MediaPlayercreate(this, R

145
Выдергивание меню

Выдергивание меню

Доброго времени сутокУ меня такой вопрос, как реализовать вытаскивание(выдергивание меню), как панель уведомлений в андроид

142