Apache camel 如何在ApacheCamel中获得curl的结果?

Apache camel 如何在ApacheCamel中获得curl的结果?,apache-camel,Apache Camel,如何在ApacheCamel中获得curl的结果? ApacheCamel是否有一些用于运行curl的“curl”组件 或者我只需要使用camel exec 然后我需要解析json和“station”:“\u041a\u0438\u0457\u0432-\u041f\u0430\u0441\u0430\u0436\u0438\u0440\u0441\u044c\u043a\u0438\u0439” 如何从ApacheCamel中的json编码中获取普通文本 我对Apache Camel没有到期日

如何在ApacheCamel中获得curl的结果? ApacheCamel是否有一些用于运行curl的“curl”组件

或者我只需要使用camel exec

然后我需要解析json和
“station”:“\u041a\u0438\u0457\u0432-\u041f\u0430\u0441\u0430\u0436\u0438\u0440\u0441\u044c\u043a\u0438\u0439”

如何从ApacheCamel中的json编码中获取普通文本

我对Apache Camel没有到期日

curl 'http://booking.uz.gov.ua/purchase/search/' -H 'GV-Token: 502c55405bfb82fa16e08278d934c5f1' -H 'Origin: http://booking.uz.gov.ua' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,ru;q=0.6,uk;q=0.4' -H 'Connection: keep-alive' -H 'Cookie: _gv_sessid=3lt3g4org56quapm20ogqs9n33; _gv_lang=uk; HTTPSERVERID=server1; __utmt=1; __utma=31515437.700625198.1438102950.1440172017.1440176787.29; __utmb=31515437.1.10.1440176787; __utmc=31515437; __utmz=31515437.1439982958.17.2.utmcsr=uz.gov.ua|utmccn=(referral)|utmcmd=referral|utmcct=/passengers/reservation_purchase_travel_documents/' -H 'GV-Ajax: 1' -H 'GV-Screen: 1280x800' -H 'GV-Referer: http://booking.uz.gov.ua/' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: */*' -H 'Referer: http://booking.uz.gov.ua/' -H 'GV-Unique-Host: 1' -H 'DNT: 1' --data 'station_id_from=2218020&station_id_till=2200001&station_from=%D0%9A%D0%BE%D0%B2%D0%B5%D0%BB%D1%8C&station_till=%D0%9A%D0%B8%D1%97%D0%B2&date_dep=24.08.2015&time_dep=00%3A00&time_dep_till=&another_ec=0&search=' --compressed

作为第一步,您必须通过HTTP GET请求从给定URL获取文档。您可以在apachecamel路由的范围内通过丰富交换来实现这一点,但您必须以某种方式触发路由。据我所知,对于HTTP,Camel中没有任何组件。这就是只需创建一个类似“from”(“http:…”)的路由的要求

一种简单的方法是使用组件“http4”来请求带有ConsumerTemplate的文档。这可以通过CamelContext(CamelContext.createConsumerTemplate())创建。在中找到这方面的示例。请看带有“consumer.receiveBody(…)”的行

为了处理JSON负载,您可以使用Camel的JSON工具,如

如果使用ConsumerTemplate获取文档,则必须创建如下路由(取自驼峰文档),并使用ProducerTemplate触发该路由:

from("direct:start")
.choice()
.when().jsonpath("$.store.book[?(@.price < 10)]")
  .to("jms:queue:book.cheap")
.when().jsonpath("$.store.book[?(@.price < 30)]")
  .to("jms:queue:book.average")
.otherwise()
  .to("jms:queue:book.expensive")
from(“直接:开始”)
.choice()
.when().jsonpath($.store.book[?(@.price<10)])
.to(“jms:queue:book.cheap”)
.when().jsonpath($.store.book[?(@.price<30)])
.to(“jms:queue:book.average”)
.否则()
.to(“jms:queue:book.priced”)
在所示的示例中,通过使用ProducerTemplate将主体发送到端点“direct:start”