读书人

不同工具(jsoup、httpclient)获取多

发布时间: 2012-10-24 14:15:58 作者: rapoo

不同工具(jsoup、httpclient)获取多个同路径下同名Cookie的问题

这两天在iteye的问答中有一个【java中使用jsoup获取cookies】问题, 地址:http://www.iteye.com/problems/87415。

?

不知大家遇到类似的问题吗,希望一起探讨。


1、首先第一次访问http://www.17sct.com/city.php?ename=CHANGZHOU,我们可以看到如下请求:


不同工具(jsoup、httpclient)获取多个同路径上同名Cookie的有关问题

我们看到 设置了两个 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方法中如何防止转向?
没研究过 应该是类似的

读书人网 >JavaScript

热点推荐