1. Сортировка проблемы:
Исключение: org.springframework.web.httprequestmethodnotsupportedException: метод запроса 'post' не поддерживается
Очевидно, что когда Файн, наконец, выполняет HTTP -запрос, этот метод считается POST, но клиент Feign определяет requestMethod.get или @GetMaping, что вызывает ошибку.
Так почему же Фейнер думает, что этот метод является постом?
Отслеживание исходного кода:
1. Давайте посмотрим на аннотацию FeignClient в качестве записи:
2. Согласно последовательному стилю Spring Cloud, мы открываем класс Feignautoconfiguration, чтобы увидеть логику конфигурации:
Посмотрите на аннотацию в красной коробке рисунка выше: этот класс запускается, когда нет илоадбалранта. Наш проект включил ленту, поэтому он должен существовать. Посмотрите на комментарии еще раз: клиенты, балансирующие ленту, должны использовать FeignribbonClientAutoConfiguration для настройки этого класса. идти ~
Как показано на рисунке выше, посмотрите на красную коробку Комментарии: в порядке импорта сверху вниз: httpclientfeignload balancedConfiguration> okhttpfeignloadlancedConfiguration> defaultfeignloadAndConfiguration , соответствующий базовый
Согласно определению протокола HTTP, @requestbody+ requestmethod.get поддерживается. Таким образом, это зависит от различных реализаций инструментария. Проверяя исходный код, я обнаружил, что OKHTTP и HttpurlConnection не поддерживаются (сообщается о ошибке), только HttppClient поддерживает его. (HttpurlConnection по умолчанию сообщит об ошибке)
Мы знаем, что только httpclient поддерживает @requestbody+requestmethod.get, поэтому мы должны соответствовать условиям и перейти на httpclientfeignloadlancedConfiguration. Проверьте исходный код:
Можно видеть, что класс Apachehttpclient существует под панцирем. Давайте добавим в точку:
<depervice> <groupid> io.github.openfeign </groupid> <artifactid> feign-httpclient </artifactid> </depervice>
Наконец, пакет Feign-Httpclient-9.5.0.jar был загружен, и он открыл и обнаружил, что был apachehttpclient.class. Нажмите и посмотрите, что это на самом деле был HttppClient.
Таким образом, POM вводит Feign-httpclient-》 apachehttpclient.class-》 перейдите в httpclientfeignloadbalancedConfiguration-》 При запросе, httpclient-》 support @requestbody+ requestmethod.getget.
2. Решение:
Введено в POM
<depervice> <groupid> io.github.openfeign </groupid> <artifactid> feign-httpclient </artifactid> </depervice>
После обновления Maven проверьте, существует ли в проекте Feign-Httpclient-9.5.0.jar пакет.
Суммировать
Выше приведено решение для Spring Cloud, которое представлено вам редактор. Решение об ошибке Spring Cloud Feign не поддерживает @Requestbody+ requestmethod.get. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!