@SashaDown
Студент

Как выводить тело ошибки после post запроса?

Мне должен (и приходит) ответ с кодом 302. Мне необходимо выводить полученный ответ, но body() выводит только успешные запросы, коим он мой не будет считать. Хотел использовать errorBody(), но его подсвечивает красным (причина мне не известна).
Как использовать в моём случае errorBody()? Или есть ли его аналоги?
final OkHttpClient client = new OkHttpClient()
            .newBuilder()
            .followRedirects(false)
            .followSslRedirects(false)
            .build();
    class AsyncRequest extends AsyncTask<String, Integer, String> {
        @Override
        protected String doInBackground(String... arg) {

            RequestBody form = new FormBody.Builder()
                    .add("studentBookId", "Номер зачётной книги")
                    .addEncoded("f","Фамилия")
                    .addEncoded("i","Имя")
                    .addEncoded("pass","Пароль")
                    .add("class","pwd")
                    .add("submit","Войти")
                    .build();

            Request request = new Request.Builder()
                    .url(URL_Base)
                    .post(form)
                    .build();

            Call call = client.newCall(request);
            Response response = null;
            try {
                response = call.execute();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
        }
    }
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
@SashaDown Автор вопроса
Студент
Я нашёл причину: я не получаю тело, так как мне необходимо считать cookie и переотправить запрос соответсвенно, а там получу уже необходимый файл
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
По идее ошибочный боди будет тоже в body(). Ты проверял, или это твои измышления?

OkHttp умеет в асинхронные запросы сам, не надо для этого использовать асинктаск. Забудь вообще о его существовании, и никогда не используй.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы