35.3. 访问消息内容
访问消息标头
从路由器的角度来看,消息标头通常包含最有用的消息内容,因为标头通常希望在路由器服务中进行处理。要访问标头数据,您必须首先从交换对象获取消息(例如,使用 Exchange.getIn ()
),然后使用 Message 接口来检索单个标头(例如,使用 Message.getHeader ()
)。
例 35.4 “访问授权标头” 显示了访问名为 Authorization
的标头值的自定义处理器示例。本例使用 ExchangeHelper.getMandatoryHeader ()
方法,它消除了对 null 标头值进行测试的需要。
例 35.4. 访问授权标头
import org.apache.camel.*;
import org.apache.camel.util.ExchangeHelper;
public class MyProcessor implements Processor {
public void process(Exchange exchange) {
String auth = ExchangeHelper.getMandatoryHeader(
exchange,
"Authorization",
String.class
);
// process the authorization string...
// ...
}
}
有关 Message 接口的详情,请参考 第 34.2 节 “消息”。
访问消息正文
您还可以访问消息正文。例如:要将字符串附加到 In 信息的末尾,您可以使用 例 35.5 “访问消息正文” 中显示的处理器。
例 35.5. 访问消息正文
import org.apache.camel.*; import org.apache.camel.util.ExchangeHelper; public class MyProcessor implements Processor { public void process(Exchange exchange) { Message in = exchange.getIn(); in.setBody(in.getBody(String.class) + " World!"); } }
访问消息附加
您可以使用 Message.getAttachment ()
方法或 Message.getAttachments ()
方法访问消息的附件。详情请查看 例 34.2 “消息接口”。