不同工具(jsoup、httpclient)获取多个同路径下同名Cookie的问题
这两天在iteye的问答中有一个【java中使用jsoup获取cookies】问题, 地址:http://www.iteye.com/problems/87415。
?
不知大家遇到类似的问题吗,希望一起探讨。
1、首先第一次访问http://www.17sct.com/city.php?ename=CHANGZHOU,我们可以看到如下请求:
我们看到 设置了两个 99a0_city cookie, 值分别为1 和 269;如chrome、firefox、ie8将选择最后一个作为cookie值。
?
好像没什么问题,接下来继续看两个工具:
1、jsoup
?
HttpClient client = new HttpClient(); GetMethod get = new GetMethod("http://www.17sct.com/city.php?ename=CHANGZHOU"); get.setFollowRedirects(false); client.executeMethod(get); System.out.println(Arrays.toString(client.getState().getCookies())); //[PHPSESSID=cn74fv516879pv26h5lbaf9gd0, 99a0_city=269] //立即过期的不显示出来?
?
?
因此总结:
1、使用java.net.HttpURLConnection的工具/框架,如果多个同路径下同名的cookie将获取第一个;
2、使用apache?HttpClient,和浏览器行为一样获取最后一个。
?
?
因此,当我们在使用cookie时,尽量保证服务器设置一个cookie。
?
?
还要注意:
?
1、使用java.net.HttpURLConnection的工具/框架,可能获取到过期的cookie,如之前的referer[过期时间是2011年,即立即过期];
2、使用apache?HttpClient,不会获取到过期的cookie。
?
不知大家遇到类似的问题吗,希望一起探讨。
1 楼 snowolf 2012-08-22 是个问题。。。。。 2 楼 jinnianshilongnian 2012-08-22 snowolf 写道是个问题。。。。。嗯 今天在问答频道解答遇到的 很细节。。。。 3 楼 飞天奔月 2012-08-27 对jsoup 也有研究啊
我jsoup 没有用过 cookie
4 楼 jinnianshilongnian 2012-08-27 飞天奔月 写道对jsoup 也有研究啊
我jsoup 没有用过 cookie
简单用过 内部通过java.net.HttpURLConnection来请求的。 5 楼 waitlonely2011 2012-09-13 这里httpclient用的get方法是httpclient3里的吧?在httpclient4的httpget方法中如何防止转向? 6 楼 jinnianshilongnian 2012-09-13 waitlonely2011 写道这里httpclient用的get方法是httpclient3里的吧?在httpclient4的httpget方法中如何防止转向?
没研究过 应该是类似的