Wir versuchen, eine REST-API mit HTTP OutboundGateway über DSL aufzurufen. Wir können den Aufruf sowohl mit GET als auch mit POST durchführen und die Antwort wie erwartet erhalten. Wir konnten jedoch keine Möglichkeit finden, HTTP-Header zu übergeben, während dieser Anruf über DSL erfolgt. Es gibt eine ganze Reihe von Artikeln über XML-Ansatz aber könnte nicht Dokumentation mit DSL herauszufindenFederintegration 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();
Wir mit DefaultHttpHeaderMapper versucht, so gut, aber es hat nicht funktioniert. Kannst du uns bitte dabei unterstützen?
Dank Gary..it arbeitete mit diesem 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;
}