28.17. 配置 charset
如果使用 POST
发送数据,您可以使用 Exchange
属性配置 charset
:
exchange.setProperty(Exchange.CHARSET_NAME, "ISO-8859-1");
28.17.1. 带有调度的轮询示例
这个示例每 10 秒轮询 Google 主页,并将页面写入文件 message.html
:
from("timer://foo?fixedRate=true&delay=0&period=10000") .to("http://www.google.com") .setHeader(FileComponent.HEADER_FILE_NAME, "message.html") .to("file:target/google");
28.17.2. 来自端点 URI 的 URI 参数
在本例中,我们有完整的 URI 端点,它只是您在 Web 浏览器中输入的内容。可以使用 &
作为分隔符设置多个 URI 参数,就像您在 Web 浏览器中一样。Camel 不会在此处造成混淆。
// we query for Camel at the Google page template.sendBody("http://www.google.com/search?q=Camel", null);
28.17.3. 来自消息的 URI 参数
Map headers = new HashMap(); headers.put(Exchange.HTTP_QUERY, "q=Camel&lr=lang_en"); // we query for Camel and English language at Google template.sendBody("http://www.google.com/search", null, headers);
在上面的标头值中,它不应 带有前缀 ?, 您可以像
&
amp; char 一样分隔参数。
28.17.4. 获取响应代码
您可以通过使用 Exchange.HTTP_RESPONSE_CODE
从 Out 消息标头中获取 HTTP 响应代码。
Exchange exchange = template.send("http://www.google.com/search", new Processor() { public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader(Exchange.HTTP_QUERY, constant("hl=en&q=activemq")); } }); Message out = exchange.getOut(); int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);