我有一个像这样定义的http入站适配器 -
<int-http:inbound-channel-adapter id="httpInboundAdapter"
channel="receiveChannel"
name="/inboundAdapter.htm"
supported-methods="GET, POST" />
<int:channel id="receiveChannel"/>
<int:service-activator input-channel="receiveChannel" expression="@sayHello.sayHello(payload)" />
我希望能够区分GET和POST请求,并对它们做出不同的响应。我怎么能这样做..?
答案 0 :(得分:1)
receiveChannel
上的消息将标题http_requestMethod
设置为'GET'或'POST'。
您可以使用expression="@sayHello.sayHello(payload, headers['http_requestMethod'])"
,其中第二个参数是String。
为避免对文字进行硬编码,您可以使用headers[T(org.springframework.integration.http.HttpHeaders).REQUEST_METHOD]
。
仅供参考REQUEST_URL
和USER_PRINCIPAL
。并且,在适配器/网关上,您还使用http请求参数或URI变量填充其他标头。