来自交换标头的Camel-http httpclient超时

时间:2016-08-10 16:02:35

标签: apache-camel

我的路由中有一个http组件,我希望从交换标头传递超时值。     http://foo.com?httpClient.soTimeout=5000

我们如何在Spring DSL中做到这一点。

可以做类似的事情:

<to uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/>

1 个答案:

答案 0 :(得分:1)

不幸的是,不,<to> DSL将在收到任何交换之前创建端点和生产者,而对于HTTP组件,SO_TIMEOUT不是您可以在运行时更改的参数(此处为a list of what you can change })。

话虽如此,如果您使用的是Camel 2.16+,您可以使用Dynamic To endpoint轻松完成。在你的情况下:

<toD uri="http://foo.com?httpClient.soTimeout=${in.headers.timeout}"/>

否则,您必须使用Dynamic Recipient List EIP

<setHeader headerName="theHeader">
    <simple>http://foo.com?httpClient.soTimeout=${in.headers.timeout}</simple>        
</setHeader>
<recipientList>
    <header>theHeader</header>
</recipientList>