Звонок на asJson()
ничего не скрывает.Он пытается проанализировать ваш ответ, потому что вы не указали никакой альтернативы.Получение ответа 401 или 404 не является исключительным случаем, поэтому вам нужно обработать его с помощью обычной инструкции if
.
Вы также не обязаны связывать вызовы методов.Документация объясняет, как прерывать ваши звонки.Например, ваш случай может быть переписан как
GetRequest request = Unirest.get("myUrl/" + id + "/step");
HttpResponse<JsonNode> response = request.headers(headers).asJson();
Теперь вы можете поместить код проверки ошибок между двумя строками кода.В вашем конкретном случае вы, вероятно, захотите позвонить request.getStatus()
, чтобы убедиться, что код не равен 403, или что-то еще вне диапазона 200 по этому вопросу:
if(request.getStatus() / 100 != 2) {
// Handle non 2xx responses
}