MULE - ESB - 如何为出站消息设置 header
MULE - ESB - how to set the header for the outbound message
我正在尝试为出站邮件设置 header 值。
我可以在调试模式下看到 http.headers 中的值。但是它没有显示邮递员的 header.
下面是片段
如您所见,我尝试使用两种不同的方式
来设置 header
{代码}
**<set-property propertyName="http.headers.code" value="C01" doc:name="headerCode"/>**
<set-payload value="{
 "coord": {
 "lon": -0.13,
 "lat": 51.51
 },
 "main": {
 "temp": 290.24,
 "pressure": 1016,
 "humidity": 77,
 "temp_min": 288.15,
 "temp_max": 292.15
 },
 "id": 2643743,
 "name": "London",
 "cod": 200
 }" doc:name="Set Payload"/>
**<message-properties-transformer doc:name="Message Properties">
<add-message-property key="http.headers.id" value="ID01" />
</message-properties-transformer>**
<logger message="header-property logger" level="INFO" doc:name="Logger"/>
</flow>
{代码}
附调试截图
Debugging screenshot
postman collection screenshot
我期望看到 header 中的值。但它不显示
任何人都可以阐明这一点。
谢谢你和问候
尼维
在 Mule 中设置出站属性时(我的经验是从 3.8 开始)它们将默认为 HTTP header,因此您不需要在 属性 中包含 'http.headers.'元素,只有您要添加的 header 的名称。
例如如果您的 set-property 元素是:
<set-property propertyName="id" value="ID01" doc:name="Add ID Header" />
然后在调用该服务时,这将添加 "id" 作为 HTTP 响应 header。
我的整个流程是:
<flow name="testFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/test" doc:name="HTTP" />
<set-payload
value="{
 "coord": {
 "lon": -0.13,
 "lat": 51.51
 },
 "main": {
 "temp": 290.24,
 "pressure": 1016,
 "humidity": 77,
 "temp_min": 288.15,
 "temp_max": 292.15
 },
 "id": 2643743,
 "name": "London",
 "cod": 200
 }"
doc:name="Set Payload" />
<set-property propertyName="id" value="ID01" doc:name="Add ID Header" />
</flow>
当我向该流程发送请求时,我收到了预期的 HTTP header:
curl -v http://localhost:8091/test
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8091 (#0)
> GET /test HTTP/1.1
> Host: localhost:8091
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200
< id: ID01 <=============
< Content-Length: 244
< Date: Tue, 10 Jul 2018 22:44:51 GMT
<
{
"coord": {
"lon": -0.13,
"lat": 51.51
},
"main": {
"temp": 290.24,
"pressure": 1016,
"humidity": 77,
"temp_min": 288.15,
"temp_max": 292.15
},
"id": 2643743,
"name": "London",
"cod": 200
}
希望对您有所帮助!
约翰逊。
我正在尝试为出站邮件设置 header 值。 我可以在调试模式下看到 http.headers 中的值。但是它没有显示邮递员的 header.
下面是片段 如您所见,我尝试使用两种不同的方式
来设置 header{代码}
**<set-property propertyName="http.headers.code" value="C01" doc:name="headerCode"/>**
<set-payload value="{
 "coord": {
 "lon": -0.13,
 "lat": 51.51
 },
 "main": {
 "temp": 290.24,
 "pressure": 1016,
 "humidity": 77,
 "temp_min": 288.15,
 "temp_max": 292.15
 },
 "id": 2643743,
 "name": "London",
 "cod": 200
 }" doc:name="Set Payload"/>
**<message-properties-transformer doc:name="Message Properties">
<add-message-property key="http.headers.id" value="ID01" />
</message-properties-transformer>**
<logger message="header-property logger" level="INFO" doc:name="Logger"/>
</flow>
{代码}
附调试截图 Debugging screenshot
postman collection screenshot 我期望看到 header 中的值。但它不显示 任何人都可以阐明这一点。 谢谢你和问候 尼维
在 Mule 中设置出站属性时(我的经验是从 3.8 开始)它们将默认为 HTTP header,因此您不需要在 属性 中包含 'http.headers.'元素,只有您要添加的 header 的名称。
例如如果您的 set-property 元素是:
<set-property propertyName="id" value="ID01" doc:name="Add ID Header" />
然后在调用该服务时,这将添加 "id" 作为 HTTP 响应 header。
我的整个流程是:
<flow name="testFlow">
<http:listener config-ref="HTTP_Listener_Configuration"
path="/test" doc:name="HTTP" />
<set-payload
value="{
 "coord": {
 "lon": -0.13,
 "lat": 51.51
 },
 "main": {
 "temp": 290.24,
 "pressure": 1016,
 "humidity": 77,
 "temp_min": 288.15,
 "temp_max": 292.15
 },
 "id": 2643743,
 "name": "London",
 "cod": 200
 }"
doc:name="Set Payload" />
<set-property propertyName="id" value="ID01" doc:name="Add ID Header" />
</flow>
当我向该流程发送请求时,我收到了预期的 HTTP header:
curl -v http://localhost:8091/test
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8091 (#0)
> GET /test HTTP/1.1
> Host: localhost:8091
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 200
< id: ID01 <=============
< Content-Length: 244
< Date: Tue, 10 Jul 2018 22:44:51 GMT
<
{
"coord": {
"lon": -0.13,
"lat": 51.51
},
"main": {
"temp": 290.24,
"pressure": 1016,
"humidity": 77,
"temp_min": 288.15,
"temp_max": 292.15
},
"id": 2643743,
"name": "London",
"cod": 200
}
希望对您有所帮助!
约翰逊。