Apache Camelのカールから結果を得るにはどうすればよいですか?Apache Camelには、curlを実行するための「curl」コンポーネントがありますか?
または、camel-execのみを使用する必要がありますか?
次に、jsonを解析して "station":"\u041a\u0438\u0457\u0432-\u041f\u0430\u0441\u0430\u0436\u0438\u0440\u0441\u044c\u043a\u0438\u0439"
Apache Camelでこのjsonエンコーディングから通常のテキストを取得する方法は?
ApacheCamelの使用経験はありません。
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
最初のステップとして、HTTPGETリクエストを介して指定されたURLでドキュメントをフェッチする必要があります。交換を強化することで、Apache Camelルートのスコープ内でこれを行うことができますが、何らかの方法でルートをトリガーする必要があります。私の知る限り、HTTPの場合、Camelにはスケジュールされたポーリングコンシューマコンポーネントはありません。これは、「from( "http:...")」のようなルートを作成するための要件です。
簡単なアプローチは、ConsumerTemplateでドキュメントを要求するためにコンポーネント「http4」を使用することです。これは、CamelContext(CamelContext.createConsumerTemplate())を介して作成できます。ApacheCamelテストでこの例を見つけてください。「consumer.receiveBody(...)」の行を見てください。
JSONペイロードで作業するために、JsonPath言語のようなCamelのJSONツールを使用できます。
ConsumerTemplateを使用してドキュメントをフェッチした場合は、次のようなルートを作成し(Camelドキュメントから取得)、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")
示されている例では、ProducerTemplateを利用して、本文をエンドポイント「direct:start」に送信します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加