如何在WSO2ESB中使用“发送REST呼叫”;日期“;运输头

如何在WSO2ESB中使用“发送REST呼叫”;日期“;运输头,rest,wso2esb,Rest,Wso2esb,我正在尝试从WSO2ESB内部调用REST服务。请求需要包含一个身份验证代码,该代码将根据一些值计算,包括日期传输头,它也必须是传输头的一部分 <syn:property name="Date" value="Mi, 1 Mrz 2015 11:00:00 MEZ" scope="transport" /> <syn:property name="X-Auth-Code" value="SomeCodeBasedOnDateHeader" scope="transport" /

我正在尝试从WSO2ESB内部调用REST服务。请求需要包含一个身份验证代码,该代码将根据一些值计算,包括日期传输头,它也必须是传输头的一部分

<syn:property name="Date" value="Mi, 1 Mrz 2015 11:00:00 MEZ" scope="transport" />
<syn:property name="X-Auth-Code" value="SomeCodeBasedOnDateHeader" scope="transport" />
<syn:send>
  <syn:endpoint>
    <syn:http uri-template="http://localhost:8280/rest/resourceA/{uri.var.resA}/resourceB/{uri.var.resB}" method="POST" />
  </syn:endpoint>
</syn:send>


但是当尝试发送请求时,日期传输头将被WSO2 ESB删除(REST服务将不会获得任何日期头)。是否有可能包含日期头?

在NIO和直通http传输中,这些头似乎都被删除了:

  • 联系
  • 传输编码
  • 日期
  • 内容长度
  • 活命
  • 服务器
  • 用户代理

您可以在ESB_HOME/repository/conf/nhttp.properties或passthru-http.properties中设置http.Server.preserve=truehttp.User.Agent.preserve=true来保存服务器头和用户代理头,具体取决于axis2中配置的传输,但是看起来没有要保留的属性Date头:您可能需要编写自己的http传输发送器并在ESB_HOME/repository/conf/axis2/axis2.xml中配置自定义类:

您可以通过将以下属性添加到 D:\stack\wso2am-2.1.0\repository\conf\nhttp.properties D:\stack\wso2am-2.1.0\repository\conf\passthru-http.properties

http.headers.preserve=Date