如何将属性设置为传入的http请求标头的值?我尝试了一些事情(见下文),但我的日志值都是null,所以我显然没有正确读取标题值。我真正关心的标题值是X-EMPID。使用wso2esb 4.8.1。
以下couple posts让我相信这会奏效,但我还没有运气。
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="getaccount2"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="empid"
expression="get-property('transport', 'X-EMPID')"
scope="default"
type="STRING"/>
<log level="custom">
<property name="emp_id" expression="get-property('empid')"/>
</log>
<log level="custom">
<property name="content_length"
expression="get-property('transport', 'Content-Length')"/>
</log>
<log level="custom">
<property name="TRANSPORT_HEADERS" expression="get-property('TRANSPORT_HEADERS')"/>
</log>
答案 0 :(得分:14)
通过使用XPath变量,您可以方便地访问HTTP头,这在技术上是WSO2 ESB中的传输头。读取名为X-EMPID
的HTTP标头的最简单方法是使用以下XPath:$trp:X-EMPID
,其中$trp
前缀表示冒号后面的部分是传输属性的名称。要记录标头值,可以使用以下日志介体:
<log level="custom">
<property name="X-EMPID value" expression="$trp:X-EMPID" />
</log>
要将属性myProperty
设置为X-EMPID
HTTP标头(已存储在传输属性中)的值,您将使用属性介体:
<property name="myProperty" expression="$trp:X-EMPID" />
该功能记录在the WSO2 site。