Spring-android Rest Template 401 и HttpMessageNotReadableException

Я установил свои конвертеры следующим образом: convertters = {StringHttpMessageConverter.class, FormHttpMessageConverter.class, MappingJackson2HttpMessageConverter.class}

Я предположил, что сначала будет пытаться строка, прежде чем пытаться сопоставить с JSON. Как я сигнализирую соответствующему конвертеру, чтобы он не пытался сопоставить с JSON, поскольку этот ответ является 401 Несанкционированным, и я хотел бы попытаться повторно пройти аутентификацию для моего случая и попытаться выполнить ту же операцию?

Или я должен просто включить блок catch с этим конкретным исключением, чтобы справиться с этим?

Получаем следующее исключение.

W / System.err: org.springframework.http.converter.HttpMessageNotReadableException: не удалось прочитать JSON: нераспознанный токен "Unauthorized": ожидалось ("true", "false" или "null") W/System.err: at [ Источник: буфер (com.android.okhttp.internal.http.HttpConnection$FixedLengthSource@f03e4ce).inputStream(); строка: 2, столбец: 14]; вложенное исключение: com.fasterxml.jackson.core.JsonParseException: нераспознанный токен "не авторизован": ожидалось ("истина", "ложь" или "ноль") W/System.err: at [источник: буфер (com.android. okhttp.internal.http.HttpConnection$FixedLengthSource@f03e4ce).inputStream (); строка: 2, столбец: 14]

1 ответ

Основываясь на вашем ответе, т.е. 401, который является Несанкционированным ответом на ошибку, установите заголовки в HttpEntity:

HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("Authorization", "Bearer <token id>");
Другие вопросы по тегам