Apache Camel HTTP4和(JSESSIONID)cookie

时间:2014-09-07 02:07:24

标签: cookies apache-camel apache-httpclient-4.x jsessionid

我有一个相对复杂的路由,在同一主机上调用5个不同的URL。主机偶尔会发送我必须在后续通话中返回的cookie,就像浏览器一样。我正在使用Camel 2.10(由于兼容性问题而无法升级),此版本似乎默认情况下不配置cookie存储。如果我将用BasicCookieStore连接,那么它可以被HTTP4组件所做的所有调用共享......但是,当然,这在许多人共享的Web应用程序的上下文中是没有意义的。用户,所以这可能是一个错误的假设。

我还注意到,如果我对同一个URL发出多个请求,应始终为JSESSIONID发送Set-Cookie(当然,除非客户端已经发送了此cookie),但即使我专门删除了所有头文件在发出请求之前,服务器仅在第一次发送JSESSIONID。我已尝试使用bridgeEndpoint=true和没有,但行为没有区别。使用浏览器进行访问时,其行为与预期一致。

似乎我对Camel如何处理cookie有些误解。有人可以帮我理解发生了什么吗?

1 个答案:

答案 0 :(得分:1)

当你将bridgeEndpoint选项设置为true时,camel只是将http客户端默认的cookieStore设置为false,这意味着它不会记住任何cookie。

如果bridgeEndpoint选项为false(默认值),http客户端使用BasicCookieStore存储cookie。