Я звоню во внешнюю службу из моего весеннего приложения, и это мой код
return webClient.get()
.uri(builder ->
buildURI(builder))
.accept(MediaType.APPLICATION_JSON)
.headers(httpHeaders ->
buildHeaders(httpHeaders))
.retrieve()
.onStatus(httpStatus -> httpStatus.series().value()== HttpStatus.UNAUTHORIZED.value(),
clientResponse ->
throwError(clientResponse))
.bodyToMono(
A.class);
В счастливом пути внешняя служба возвращает 200 и ответ json. Все работает хорошо.
Но в определенной ситуации для неверных учетных данных внешняя служба возвращает 401 и ответ, который имеет application / xml; chatset = UTF-8.
Мой код не выполняется со следующим исключением
org.springframework.web.reactive.function.UnsupportedMediaTypeException: тип содержимого 'application / xml; charset = UTF-8' не поддерживается
У меня нет контроля над внешней службой. Как я могу справиться с этим в моем приложении?