使用camel-http下载文件

时间:2018-03-14 20:33:42

标签: apache-camel

ArrayList个网址进入路线。我正在使用Splitter EIP将ArrayList拆分为单独的字符串,每个字符串都是一个URL。我想下载与这些URL关联的文件并将它们包装到File对象中。这是我到目前为止所尝试的:

  from("direct:downloadFiles")
       .split(body())
        .setHeader(Exchange.HTTP_METHOD, constant("GET"))
          .to("http4://${body}")
           .process (new TestProcessor())

似乎无法在任何地方找到一个如何做到这一点的好例子。请帮忙。

1 个答案:

答案 0 :(得分:2)

感谢Camel这很简单。只需使用此代替路线的最后两行。

.toD("http4://${body}")
.to("file://target");

请注意以下问题:

  • 您必须使用.toD()代替.to(),因为您的终端不是静态的,而是动态表达式
  • 由于.toD() HTTP调用将下载的文档放入邮件正文中,您只需使用.to("file://[folder])
  • 将正文写入文件即可
  • 如果要设置特定文件名,可以通过邮件标题CamelFileName或端点选项filename
  • 进行设置