如何设置 Camel HTTP4 连接超时选项?
How to set Camel HTTP4 connection timeout options?
Camel HTTP4 的文档非常清楚,您可以为 HTTP4 组件设置以下选项:connectionRequestTimeout、connectTimeout, 和 socketTimeout.
但是,这些在文档中被列为常规组件选项,而不是查询选项(如果设置为查询选项,它们将被忽略——它们只是在调用时传递到 HTTP 端点)。所以我不确定如何设置它们。 HTTPComponent class 似乎没有这些选项的任何 setter 方法。
文档确实有一个部分 Using client timeout - SO_TIMEOUT,它链接到单元测试源,他们在其中将 httpClient.soTimeout 设置为查询选项。但是,当我尝试这样做时出现错误:
Failed to resolve endpoint:
https4://myhost/myapi/v1?bridgeEndpoint=true&httpClient.soTimeout=1000 due to: There are 1 parameters that couldn't be set on the endpoint.
Check the uri if the parameters are spelt correctly and that they are
properties of the endpoint. Unknown parameters=[{soTimeout=1000}
事实证明文档不太正确。所有这些超时参数都可以通过查询参数选项设置,但它们需要以 httpClient. 作为前缀。这是对我有用的:
?httpClient.connectTimeout=10000&httpClient.connectionRequestTimeout=10000&httpClient.socketTimeout=30000
我用非常小的值(1 毫秒)进行了测试,结果产生了“读取超时”错误。
看起来 httpClient 的可用选项是 RequestConfig.Builder 上的 setter 值。
Camel HTTP4 的文档非常清楚,您可以为 HTTP4 组件设置以下选项:connectionRequestTimeout、connectTimeout, 和 socketTimeout.
但是,这些在文档中被列为常规组件选项,而不是查询选项(如果设置为查询选项,它们将被忽略——它们只是在调用时传递到 HTTP 端点)。所以我不确定如何设置它们。 HTTPComponent class 似乎没有这些选项的任何 setter 方法。
文档确实有一个部分 Using client timeout - SO_TIMEOUT,它链接到单元测试源,他们在其中将 httpClient.soTimeout 设置为查询选项。但是,当我尝试这样做时出现错误:
Failed to resolve endpoint: https4://myhost/myapi/v1?bridgeEndpoint=true&httpClient.soTimeout=1000 due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{soTimeout=1000}
事实证明文档不太正确。所有这些超时参数都可以通过查询参数选项设置,但它们需要以 httpClient. 作为前缀。这是对我有用的:
?httpClient.connectTimeout=10000&httpClient.connectionRequestTimeout=10000&httpClient.socketTimeout=30000
我用非常小的值(1 毫秒)进行了测试,结果产生了“读取超时”错误。
看起来 httpClient 的可用选项是 RequestConfig.Builder 上的 setter 值。