httpclient获取的cookies和浏览器上获取的不全

走位风骚闪着腰 发布于 2015/05/21 16:25
阅读 5K+
收藏 0

代码:

public class Test {
	public static void main(String[] args) {
		DefaultHttpClient httpclient = new DefaultHttpClient();
		HttpGet httpget = new HttpGet(
				"http://www.tax.sh.gov.cn/wsbs/WSBSptFpCx_loginsNewl.jsp");
		// 执行get请求
		try {
			HttpResponse response = httpclient.execute(httpget);
			CookieStore cookieStore = httpclient.getCookieStore();
			StringBuffer sb = new StringBuffer();
			System.out.println(cookieStore.getCookies());
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}
结果: [[version: 0][name: JSESSIONID][value: VdVG6610D3VVLzd3KP53WKXh2G6byCCvXk4Qx5pRflNkqkRm79hy!551169765][domain: www.tax.sh.gov.cn][path: /][expiry: null]]
用httpclient只获取到了JSESSIONID这个cookie,求破!

以下是问题补充:

@走位风骚闪着腰:httpclient版本4.3.6 (2015/05/21 16:53)
加载中
0
houhuiliang
houhuiliang

http://www.tax.sh.gov.cn/wsbs/WSBSptFpCx_loginsNewl.jsp

这个网址,服务器端只生成一个cookie,即JSESSIONID,其他cookie如:_gscbrs_740578017=1;是js动态生成的。

0
走位风骚闪着腰
走位风骚闪着腰

引用来自“houhuiliang”的评论

http://www.tax.sh.gov.cn/wsbs/WSBSptFpCx_loginsNewl.jsp

这个网址,服务器端只生成一个cookie,即JSESSIONID,其他cookie如:_gscbrs_740578017=1;是js动态生成的。

的确是通过http://static.gridsumdissector.com/js/Clients/GWD-801927-679AC4/gs.js这个动态生成的。

那有什么办法可以拿到动态生成的cookie?因为httpclient模拟提交表单,每次验证码是正确的,还提示我验证码错误估计和提交请求时cookie没有完全带过去有关系。

houhuiliang
houhuiliang
模拟生成对应的cookie就可以了
0
蓝水晶飞机
蓝水晶飞机
把ga.js的算法用Java实现
0
云贝勒
云贝勒
LZ 你好 我能看一下你的代码吗 想学习一下 谢谢
superMan丶雒
superMan丶雒
你们怎么解决的这个问题呢?
返回顶部
顶部