mule如何从邮递员休息客户端获取http标头值

时间:2015-04-06 10:14:03

标签: mule mule-studio

<flow  name="getDetails">
    <http:inbound-endpoint doc:description="This endpoint receives an HTTP message." doc:name="HTTP" exchange-pattern="request-response" host="localhost" port="8081" path="getDetails"/>
    <json:xml-to-json-transformer doc:name="XML to JSON" mimeType="text/json"  ignoreBadInput="true"/> 
    <logger message="xml to json output #[message.payload]" level="INFO" doc:name="Logger"/>

      <logger message=" custom header username ... #[message.outboundProperties.get('http.headers.username')]" level="INFO" />
      <logger message=" custom header username ... #[message.inboundProperties.get('http.headers.username')]" level="INFO" />
    <http:outbound-endpoint exchange-pattern="request-response"  address="http://localhost:8081/callReservation" method="POST" contentType="application/json" doc:name="HTTP"/>
</flow>

通过postman rest客户端(chrome)使用 form-data,x-www-form-urlencoded。

我将标题值设置为
http.headers.username =骡 http.headers.password =骡

在mule **<logger message=" custom header username ... #[message.outboundProperties.get('http.headers.username')]" level="INFO" />**

它显示空值。欢迎任何有价值的建议

2 个答案:

答案 0 :(得分:0)

您不需要将密钥名称用作http.headers.username。请使用密钥作为用户名和值作为mule。然后,您应该能够使用MEL来访问入站属性中的用户名属性,如#[message.inboundProperties [&#39;用户名&#39;]]

答案 1 :(得分:0)

问题似乎来自你的

<json:xml-to-json-transformer doc:name="XML to JSON" mimeType="text/json"  ignoreBadInput="true"/> 

给出了以下例外情况: - com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123) in prolog; expected '<' at [row,col {unknown-source}]: [1,1] (javax.xml.transform.TransformerException) (org.mule.api.transformer.TransformerException).

只需使用以下表达式: - 记录器中的#[message.inboundProperties.username]#[message.inboundProperties['username']]并将放在 <http:inbound-endpoint/>之后,您将获得该值。