Как отправить HTTP-запрос с моего IntegrationFlow? - PullRequest
0 голосов
/ 05 июля 2019

Я получаю Запрос от Клиента, который возвращает SendRequest-Object, который имеет HttpMethod, путь и данные для отправки. Теперь я хочу отправить запрос в зависимости от объекта, который я получаю в API.

После отправки я получу ответ.

Теперь проблема в том, как я могу отправить полезную нагрузку и получить ответ.

@Bean
    public IntegrationFlow httpPostSendRawData() {
        return IntegrationFlows.from(
                Http.inboundGateway("/api/data/send")
                        .requestMapping(r -> r.methods(HttpMethod.POST))
                        .statusCodeExpression(dataParser().parseExpression("T(org.springframework.http.HttpStatus).BAD_REQUEST"))
                        .requestPayloadType(ResolvableType.forClass(DataSend.class))
                        .crossOrigin(cors -> cors.origin("*"))
                        .headerMapper(dataHeaderMapper())
        )
                .channel("http.data.send.channel")
                .handle("rawDataEndpoint", "send")
                .transform(/* here i have some transformations*/)
                .handle(Http.outboundGateway((Message<SendRequest> r)->r.getPayload().getPath())
                        .httpMethod(/* Here I would like to get the Method of SendRequest*/)
                        //add payload
                        .extractPayload(true))
.get();

1 Ответ

1 голос
/ 05 июля 2019

Не понятно, какой у вас SendRequest, но идея для method точно такая же, как вы сделали для url:

.httpMethodFunction((Message<SendRequest> r)->r.getPayload().getMethod())

Хотя, так как вы хотите получить извлечение для тела запроса, вам нужно сделать это заранее в transform() и переместить значения для url и method в заголовки. В Http.outboundGateway просто нет извлечения полезной нагрузки: он обрабатывает всю полезную нагрузку запроса как сущность для тела HTTP-запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...