要禁用HTTP连接持久性,我想使用http组件在我的一个Apache Camel路由上强制执行HTTP协议1.0。
关注Camel http component documentation我尝试使用以下URI:
http://localhost:8888/foo?httpClient.protocolVersion=HTTP/1.0
但是,camel上下文初始化失败,并带有消息:
的ResolveEndpointFailedExceptionUnknown parameters=[{protocolVersion=HTTP/1.0}]
由于HttpClientParam documentation,我认为协议版本参数可用。有趣的是,Apache Camel文档中的soTimeout示例运行良好。
我尝试了http和http4组件。我使用Apache Camel 2.10.4。 http组件具有用户代理Jakarta Commons-HttpClient / 3.1。
我知道我也可以尝试使用http组件的httpClientConfigurer和/或clientConnectionManager参数,但宁愿使用不需要自定义代码的解决方案。
提前感谢您的帮助!
答案 0 :(得分:0)
我提出了以下解决方案。
在http-component网址上,我设置了自定义httpClientConfigurer
:
http://localhost:8080/foo?httpClientConfigurer=myHttpClientConfigurer
其中myHttpClientConfigurer
是一个具有与此类似的实现的bean:
public class Http10ClientConfigurer implements HttpClientConfigurer {
@Override
public void configureHttpClient(HttpClient httpClient) {
if (httpClient.getParams() != null) {
httpClient.getParams().setVersion(new HttpVersion(1, 0));
} else {
// Could not set HTTP 1.0 version on httpClient
}
}
}