HTTP入站适配器区分受支持的方法

时间:2013-05-02 23:12:42

标签: java spring http spring-integration

我有一个像这样定义的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请求,并对它们做出不同的响应。我怎么能这样做..?

1 个答案:

答案 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_URLUSER_PRINCIPAL。并且,在适配器/网关上,您还使用http请求参数或URI变量填充其他标头。