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