如何将请求 headers 添加到 outboundGateway spring 集成 dsl

How to add request headers to outboundGateway spring integration dsl

我在 spring 集成 dsl 中找不到将 headers 添加到 outboundGateway 的函数。

.handle(outboundGateway("localhost:8080/search")
       .httpMethod(HttpMethod.GET)
       .expectedResponseType(Order.class))

我想添加到请求中的 headers 是

HttpHeaders headers = new HttpHeaders();
headers.setAccept(newArrayList(APPLICATION_JSON));
headers.setContentType(APPLICATION_JSON);
headers.add("Client-Id", "test");

有人可以帮我吗

正确:Spring 集成不允许直接操作 HttpHeaders 对象。相反,您应该遵循规范的消息传递方法 - 无协议 .enrichHeaders():

.enrichHeaders(e -> e
                        .header(DefaultHttpHeaderMapper.ACCEPT, APPLICATION_JSON)
                        .header(DefaultHttpHeaderMapper.CONTENT_TYPE, APPLICATION_JSON)
                        .header("Client-Id", "test"))
.handle(outboundGateway("localhost:8080/search")
   .httpMethod(HttpMethod.GET)
   .expectedResponseType(Order.class))