Как использовать openFeign для отслеживания перенаправления запроса HTTP POST с телом?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать openFeign для отслеживания перенаправления запроса HTTP POST с телом?

Сообщение Anonymous »

Я обнаружил, что feign вызовет ошибку (сообщение об ошибке «ERROR HttpRetryException: невозможно повторить попытку из-за перенаправления в потоковом режиме»), если я использую его для отправки запроса POST со значением тела на сервер, который вернет Код состояния HTTP 302 для перенаправления. Если значение body не добавлено, то feign успешно последует за перенаправлением. Похоже, это ограничение sun.net.www.protocol.http.HttpURLConnection, которое блокирует перенаправление POST с телом. Итак, есть ли способ настроить feign так, чтобы в таком случае он следовал за перенаправлением?
Код и журналы ошибок показаны ниже.

Код: Выделить всё

public interface FeignPostRedirectClient {
@RequestLine("POST /redirect-server")
void sendPostRequestWithBodyToRedirectServer(Map formBodyParams);  //follow redirection FAIL
//void sendPostRequestWithBodyToRedirectServer();  //follow redirection OK
}

@Configuration
public class FeignConfiguration {
@Bean
public FeignPostRedirectClient feignPostRedirectClient() {
return Feign.builder()
.logLevel(Logger.Level.FULL)
.logger(new Slf4jLogger())
.encoder(new JacksonEncoder())
.decoder(new JacksonDecoder())
.options(new Request.Options(10, TimeUnit.SECONDS, 10, TimeUnit.SECONDS, true))
.target(FeignPostRedirectClient.class, "http://localhost:8082");
}
}

Map  formParams = new HashMap();
formParams.put("Username", "alice");
formParams.put("Password", "pass");
feignPostRedirectClient.sendPostRequestWithBodyToRedirectServer(formParams);
21 ноября 2022 21:53:49.880 DEBUG 3944 --- [ main] feign.Logger
: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]---> POST http://localhost:8082/redirect-server HTTP/1.1 2022-11-21 21:53:49.880 DEBUG 3944 --- [ main] feign.Logger

: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
Content-Length: 49 2022-11 -21 21:53:49.880 DEBUG 3944 --- [

main] feign.Logger :
[FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
2022-11-21 21:53:49.880 DEBUG 3944 --- [основной] feign.Logger
: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer] {
"Имя пользователя": "алиса", "Пароль": "пароль" } 2022-11-21 21:53:49.881
DEBUG 3944 --- [ main ] feign.Logger

: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
---> END HTTP (49-байтовое тело) 2022-11-21 21:53:54.368 DEBUG 3944 --- [ main] feign.Logger :
[FeignPostRedirectClient# sendPostRequestWithBodyToRedirectServer]
POST http://localhost:8082/redirect-server HTTP/1.1 2022-11-21
21:53:54.591 DEBUG 3944 --- [ main] feign.Logger

: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
Content-Length: 49 2022- 11-21 21:53:54.591 DEBUG 3944 --- [

main] feign.Logger :
[FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
2022-11-21 21:53:54.592 DEBUG 3944 --- [ main ] feign.Logger
: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer] {
"Имя пользователя" : "алиса", "Пароль" : "пароль" } 2022-11-21 21:53:54.592
DEBUG 3944 --- [main] feign. Регистратор

: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
---> END HTTP (49-байтовое тело) 2022-11-21 21:54:54.606 DEBUG 3944 --- [ main] feign.Logger :
[FeignPostRedirectClient# sendPostRequestWithBodyToRedirectServer]
POST http://localhost:8082/redirect-server HTTP/1.1 2022-11-21
21:54:54.842 DEBUG 3944 --- [ main] feign.Logger

: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
Content-Length: 49 2022- 11-21 21:54:54.842 DEBUG 3944 --- [

main] feign.Logger :
[FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
2022-11-21 21:54:54.842 DEBUG 3944 --- [ main ] feign.Logger
: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer] {
"Имя пользователя" : "алиса", "Пароль" : "пароль" } 2022-11-21 21:54:54.842
DEBUG 3944 --- [main] feign. Регистратор

: [FeignPostRedirectClient#sendPostRequestWithBodyToRedirectServer]
---> END HTTP (49-байтовое тело)


Подробнее здесь: https://stackoverflow.com/questions/745 ... -with-body
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Java HTTP DELETE с телом запроса
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как внедрить собственный Http-клиент в Spring Cloud openfeign?
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Токен отслеживания Axon для разных имен процессоров: сохраните уникальный токен отслеживания для каждого @ProcessingGrou
    Anonymous » » в форуме JAVA
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • Ожидание перенаправления POST на GET - найден POST
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Время ожидания POST-запроса с помощью HTTP-клиента Java к HTTP-серверу Grizzly истекло
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»