Недопустимый метод HTTP: PATCH> выполнение PATCH: вызвано: feign.RetryableException:
мы используем netflix feign для вызова спокойного веб-сервиса. Для запроса патча похоже, что запрос PATCH не поддерживается.
Вызвано: feign.RetryableException: Недействительный HTTP-метод: PATCH выполнение PATCH https://projects.dev.xyz.com/projects/v1/users/ {uid}/projects/{guid} at feign.FeignException.errorExecuting(FeignException.java:66) в feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:100) в feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:74) в feign.hystrix.HystrixInvocationHandler $1.run(HystrixInvocationHandler.java:54) в com.netflix.hystrix.HystrixCommand $1.call(HystrixCommand.java:294)
Ответы
Ответ 1
если кто-то сталкивается с той же проблемой с spring -cloud-feign, использование httpClient из feign может быть достигнуто путем добавления зависимости maven:
<dependency>
<!-- Required to use PATCH -->
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>${feign.version}</version>
</dependency>
Ответ 2
Вы можете решить это, используя httpClient из feign. Вы хотите сначала добавить модуль в свой путь к классам, а затем настроить его при создании объекта с помощью
Feign.builder().client(new ApacheHttpClient())
. Это добавляет поддержку запросов PATCH.
Ссылка на Doc: https://github.com/Netflix/feign/tree/master/httpclient
РЕДАКТИРОВАТЬ: есть также объект фальшивки, который обертывает http-клиент apache, здесь
Ответ 3
Я также столкнулся с той же проблемой, но сумел решить ее, добавив зависимость feign-httpclient и добавив в запрос дополнительный заголовок X-HTTP-Method-Override: PATCH.
<dependency>
<!-- Required to use PATCH -->
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
<version>${feign.version}</version>
</dependency>
Добавить заголовок
@RequestHeader(value="X-HTTP-Method-Override", defaultValue="PATCH") String xHttpMethodOveride