如何在spring Integration中设置REQUEST HEADER

时间:2014-11-11 22:37:31

标签: asp.net spring spring-integration

我们有一个asp页面,可以读取这样的信息:

varLogon = Request.ServerVariables("HTTP_logon")

如果我们想使用spring集成向asp页面发布内容,我们无法将HTTP_logon传递给页面,

这不起作用

我们可以设置请求标头信息吗?

<int:header-enricher input-channel="pdfgenheaderchannel" output-channel="pdfgenchannel">
    <int:header name="HTTP_ordernumber" method="getOrdernumber" ref="reportbean"/>
    <int:header name="reportID" method="getReportID" ref="reportbean"/>
    <int:header name="Content-Type" value="text/html"/>
    <int:header name="logon" value="orderADCB"/>
    <int:header name="HTTP_logon" value="orderADCB"/>
</int:header-enricher>

<int-http:outbound-gateway id="pdfgenerationoutboundgateway"
                           request-channel="pdfgenchannel"
                           url="http://x.xy.xx.y/convertHTMLtoPDF.asp"
                           http-method="POST"
                           expected-response-type="java.lang.String"
                           charset="UTF-8"
                           reply-channel="replyChannel"
                           request-factory="requestFactory" /> 

2 个答案:

答案 0 :(得分:2)

您必须为header-mapper指定<int-http:outbound-gateway>。默认情况下,它仅映射标准HTTP标头:

<beans:bean id="headerMapper" class="org.springframework.integration.http.support.DefaultHttpHeaderMapper"
                factory-method="outboundMapper">
    <beans:property name="outboundHeaderNames" value="*"/>
    <beans:property name="userDefinedHeaderPrefix" value=""/>
</beans:bean>

<int-http:outbound-gateway header-mapper="headerMapper"/> 

答案 1 :(得分:0)

您可以根据标题值使用以下路由组件进行路由。

<int:header-value-router input-channel="routingChannel" header-name="headerObject">
        <int:mapping value="value1" channel="channel1" />
        <int:mapping value="calue2" channel="channel2" />
    </int:header-value-router>