特么登录状态老是丢失。。。

场景

使用阿里开源配置中心的diamond-sdk时需要登录配置中心才有权限进行操作。diamond-sdk是使用HttpClient3来进行信息传输的,于是在进行配置的操作之前客户端会先模拟登录获得session。然而在接下来的操作却一直报"未登录"之类的提示。

debug大法后发现Cookie对象好像id一直在变,返回的jsessionid也没保存。一波探索发现HttpClient3需要手动设置cookie策略。

解决方法

HttpClient3 默认的cookie策略是每次新建一个Cookie对象,复用Cookie的话,要进行如下设置。

client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY)

(完)