Мы пытаемся вызвать REST API, используя HTTP OutboundGateway, используя DSL. Мы можем сделать вызов, используя GET и POST, и получим ответ, как ожидалось. Однако мы не смогли определить способ передачи заголовков http при выполнении этого вызова с использованием DSL. Есть довольно много статей о XML подходе, но не смог найти документацию с DSLВесенняя интеграция dsl http outboundgateway
return IntegrationFlows.from("FileContentChannel")
.handle(Http.outboundGateway("http://host:port/paymentinfo/")
.charset("UTF-8")
.httpMethod(HttpMethod.GET)
.headerMapper(headers)
.expectedResponseType(String.class))
.channel(MessageChannels.queue("APIResponseChannel"))
.get();
Мы пытались с DefaultHttpHeaderMapper как хорошо, но он не работал. Не могли бы вы направить нас на это?
Благодаря Gary..it работал с этим Update1
return IntegrationFlows.from("FileContentChannel")
.handle(Http.outboundGateway("http://host:port/paymentinfo/")
.charset("UTF-8")
.httpMethod(HttpMethod.GET)
.mappedRequestHeaders("pay*")
.headerMapper(headerMapper())
.expectedResponseType(String.class))
.channel(MessageChannels.queue("APIResponseChannel"))
.get();
@Bean
HeaderMapper headerMapper() {
DefaultHttpHeaderMapper headerMapper = new DefaultHttpHeaderMapper();
String[] headerNames = {"payment-hdr1","payment-hdr2"};
headerMapper.setOutboundHeaderNames(headerNames);
headerMapper.setUserDefinedHeaderPrefix("");
return headerMapper;
}