其余样本集中在服务器端;在客户端,您需要类似...
<int:gateway id="toRest" default-request-channel="foo" service-interface="ToRest" />
<int:channel id="foo" />
<int-http:outbound-gateway id="out" request-channel="foo"
http-method="GET"
url="http://localhost:8983/solr/ccy/query?q=id:{currency}&wt=json">
<int-http:uri-variable name="currency" expression="headers['currency']"/>
</int-http:outbound-gateway>
作为ToRest
具有类似方法的Java接口String toRest(String in)
;将 ToRest 实例注入您的控制器,然后发送一个空字符串“”。
但是,我认为#
在 URL 中间会给你带来麻烦。
编辑:
添加uri-variable
- 表达式可以是任何 SpEL 表达式,例如(对消息有效负载的payload.currency
调用);; 或;等等等等getCurrency()
headers['currency']
@someBean.determineCurrency(payload)
您的网关可以填充标题...
String result(@Payload String payload, @Header("currency") String currency);
当然,由于您只是在执行 GET,因此您可以简单地在有效负载中设置货币并使用expression="payload"
.