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 “消息接口”。