我是骆驼的新手,最终陷入了代理问题。我有这样一条路线,用于存储从经常性 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);
我的问题是我需要指定一个代理(主机+端口)才能通过,否则我会被困在试图获取信息的过程中。我尝试了各种方法,包括从 routeBuilder(通过 getContext().setProperties)和包装在“properties/property”标签中的 bundle-context.xml 设置“http.proxyHost”和“http.proxyPort”。我也试图通过添加它来在端点中设置它(camel-http文档说你可以将它设置为 httpenpoint)&proxyHost=myHost&proxyPort=myPort
。
没有工作..
我还尝试从我通过谷歌阅读的帖子中设置一个 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>
但这也不起作用......而且,我希望能够自动执行此操作,而无需根据安装位置更新骆驼上下文。
那么,您是否看到了一种设置它并动态设置它的方法?