我正在尝试设置出站邮件的标头值。 我可以在调试模式下在http.headers中看到这些值。但是,它没有显示邮递员的标题。
下面是代码段 如您所见,我尝试使用两种不同的方式设置标头
{code}
**<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>
{code}
附带的调试屏幕截图 Debugging screenshot
postman collection screenshot 我期望看到标题中的值。但是没有显示 任何人都可以阐明这一点。 谢谢和问候 尼维
答案 0 :(得分:2)
在Mule中设置出站属性时(我的经验是3.8及更高版本),它们将默认为HTTP标头,因此您无需包括“ http.headers”。在您的属性元素中,只有您要添加的标题的名称。
例如如果您的set-property元素是:
<set-property propertyName="id" value="ID01" doc:name="Add ID Header" />
然后,在调用服务时,它将添加“ id”作为HTTP响应标头。
我的整个流程是:
<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标头:
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
}
希望有帮助!
约翰逊。