35.3. 访问消息内容
访问邮件标头
邮件标题通常包含从路由器角度显示最有用的消息内容,因为标头通常设计为在路由器服务中处理。要访问标头数据,您必须首先从 Exchange 对象(例如使用 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 “消息接口”。