Библиотека, которую я поддерживаю в своей компании, предоставляет пользовательскую реализацию DefaultResponseErrorHandler
, которую мы назначаем через RestTemplateCustomizer
. Эта реализация просматривает фактический код состояния http ответа и переводит его.
По сути, наш класс переопределяет
@Override
protected void handleError(ClientHttpResponse response, HttpStatus statusToReturn) throws IOException {
super.handleError(response, someOtherStatusThatIsComputedInternally);
}
Мы просто передаем другой код состояния, и Spring позаботится о создании соответствующего HttpClientErrorException
/ HttpServerErrorException
.
Я пытаюсь воспроизвести эту функцию в WebClient
, используя ExchangeFilterFunction
(& введите через WebClientCustomizer
), но я не совсем уверен, как это сделать, поскольку ClientResponse.statusCode()
уже установлен и не может быть переопределено, и, похоже, у меня нет доступа к возможности переопределить создание WebClientResponseException
.
Есть идеи / советы?