Java Mule 3:如何从多消息中获取HTTP头

Java Mule 3:如何从多消息中获取HTTP头,java,mule,Java,Mule,给定从HTTP请求创建的MuleMessage对象,如何获取请求的HTTP头?我用的是骡子3.2.1。谢谢。所有HTTP头都位于MuleMessage的入站范围属性中。HTTP头存储为入站范围属性。它们的属性名的前缀是http.。例如: MuleMessage message = ... String contentType = (String)message.getInboundProperty("http.Content-Type"); 但是在“HTTP.”属性名称空间中还有其他与HTTP

给定从HTTP请求创建的
MuleMessage
对象,如何获取请求的HTTP头?我用的是骡子3.2.1。谢谢。

所有HTTP头都位于
MuleMessage
的入站范围属性中。HTTP头存储为入站范围属性。它们的属性名的前缀是
http.
。例如:

MuleMessage message = ...
String contentType = (String)message.getInboundProperty("http.Content-Type");
但是在“HTTP.”属性名称空间中还有其他与HTTP相关的属性,例如状态代码的“HTTP.status”和请求URL的“HTTP.request”。因此,虽然可以检索单个头,但没有可靠的、自动的方法来获取所有HTTP头的列表


这个问题很重要。Mule 3.3将更好地组织HTTP相关属性。例如,所有标题将存储在名为“http.headers”的属性中,所有查询字符串参数将被解析并存储在“http.query.params”中。

您还可以通过放置日志消息进行检查

<logger message="=============test= #[message.inboundProperties]" level="INFO" doc:name="Logger"/>

如果对你有效,请告诉我


谢谢

这样的
多消息
不能有其他非HTTP头的入站范围属性吗?如果是,我如何知道哪些是HTTP头?谢谢。您还将有Mule特定的头,前缀为
Mule\uuu
,还有传输特定的头,前缀为
http.
。你应该能把麦子从谷壳里拣出来。谢谢大卫。根据这个页面,似乎没有任何可靠的方法可以获得Mule 3.2.1中所有HTTP头的列表。然而,在版本3.3中(参见JIRA票证),所有HTTP属性都将得到更好的组织,这样它们就不会被混淆成“HTTP”。例如,所有头都将组织在“http.headers”属性内的映射中。