簡體   English   中英

如何在使用 camel-http 時設置代理

[英]How to set proxy while using camel-http

我是駱駝的新手,最終陷入了代理問題。 我有這樣一條路線,用於存儲對文件的循環 http 調用的結果:

from("quartz://collector/test?cron=0+0/2+*+?+*+*")                      
    .setHeader(Exchange.HTTP_METHOD, constant("GET"))    
    .setHeader(Exchange.HTTP_QUERY, constant("Id=50")
.to("http://www.anywebsite/question.php")
    .setHeader(Exchange.FILE_NAME,constant("${date:now:yyyyMMddHHmmssSSS}.xml"))
.inOnly(someFolder);

我的問題是我需要通過 go 指定代理(主機 + 端口),否則我將無法獲取信息。 我嘗試了各種方法,包括從 routeBuilder(通過 getContext().setProperties)和包裹在“properties/property”標簽中的 bundle-context.xml 設置“http.proxyHost”和“http.proxyPort”。我也試圖通過添加&proxyHost=myHost&proxyPort=myPort來在端點中設置它( camel-http文檔說你可以將它設置為 httpenpoint)。

沒有工作..

我還嘗試從我通過谷歌閱讀的帖子中設置一個 http-conduit,例如(根據部署目標選擇一個或另一個):

<http-conf:conduit name="*.http-conduit">
<!-- when behind proxy -->
        <http-conf:client Connection="close" ConnectionTimeout="3000" ReceiveTimeout="10000" ProxyServer="p-goodwat" ProxyServerPort="3128"/> 
<!-- when no proxy -->
    <http-conf:client Connection="close" ConnectionTimeout="3000" ReceiveTimeout="10000" />
</http-conf:conduit>

但這也沒有用……而且,我希望能夠自動完成,而不必根據安裝位置更新駱駝上下文。

那么,您是否看到一種設置它並動態設置它的方法?

經過幾次嘗試,我設法讓它工作......看起來問題不是來自我的解決方案,而是因為我沒有增加捆綁版本...因此,我的解決方案沒有被考慮。

因此,對我有用的解決方案是從我的routeBuilder設置上下文的端點,例如:getContext()。setProperty(“http.proxyHost”,10.100.100.1);
的getContext()的setProperty( “把http.proxyPort”,2111)。

現在,它確實有效。

謝謝那些看過的人!

我不認為這次http-conduit設置對您有用,因為您不使用任何CXF客戶端來調用該服務。

使用XML配置:

<camelContext id="context" xmlns="http://camel.apache.org/schema/spring">
    <properties>
        <property key="http.proxyHost" value="127.0.0.1"/>
        <property key="http.proxyPort" value="8888"/>
   </properties>
</camelContext>

雖然馬文回答了他自己的問題,但他的回答已經過時了。

至少對於更新的 Camel 版本,解決方案更改為:

 context.getGlobalOptions().put("http.proxyHost", "172.168.18.9");
 context.getGlobalOptions().put("http.proxyPort", "8080");

您可以在擴展 RouteBuilder 時使用getContext()來獲取上下文。

資料來源:Camel 文檔位於https://camel.apache.org/components/3.15.x/http-component.html#_configuring_a_proxy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM