一个奇怪的cookie,sessionid问题
我遇到了一个很奇怪的问题。
我在用Java模拟登陆教务处网站。
但是当我进行最后一步GET登录后界面时
我用之前听过httpClient获取的cookie的sessionid无效
用chrome获取的sessionid可以使用。
然而,在eclipse里无效的sessionid在chrome里也可以使用。
求解。
// 建立连接
CookieStore cookieStore = new BasicCookieStore();
HttpClient httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
// 发送GET请求
HttpGet httpget = new HttpGet(loginUrl);
// 得到response信息
HttpResponse response = httpClient.execute(httpget);
ResponseHandler<String> handler = new BasicResponseHandler();
String body = handler.handleResponse(response);
// 获得cookie
String JSESSIONID = null;
String cookie_user = null;
String result = null;
List<Cookie> cookies = cookieStore.getCookies();
for (int i = 0; i < cookies.size(); i++) {
if (cookies.get(i).getName().equals("JSESSIONID")) {
JSESSIONID = cookies.get(i).getValue();
}
if (cookies.get(i).getName().equals("cookie_user")) {
cookie_user = cookies.get(i).getValue();
}
}
if (cookie_user != null) {
result = JSESSIONID;
}
System.out.println("cookie长度"+cookies.size());
System.out.println("Cookie:"+cookies.toString());
String myCookie=cookies.get(0).getName()+"="+cookies.get(0).getValue()+"; "+cookies.get(1).getName()+"="+cookies.get(1).getValue();
System.out.println(myCookie);
System.out.println("JSESSIONID:"+JSESSIONID);
// 设置GET头部
HttpGet httpget2 = new HttpGet(dataUrl);
httpget2.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
httpget2.setHeader("Accept-Encoding", "gzip, deflate, br");
httpget2.setHeader("Accept-Language", "en-US,en;q=0.9,zh;q=0.8,zh-CN;q=0.7");
httpget2.setHeader("Cache-Control", "max-age=0");
httpget2.setHeader("Connection", "keep-alive");
//httpget2.setHeader("Cookie", "JSESSIONID="+JSESSIONID+" SLBMARKN=DDABBAKM");
httpget2.setHeader("Cookie", "JSESSIONID=08vfh9fTvRx55LQchJNB6lhmyw5pJnJ1B4CWQRwqFxTh87wz7Ypv!587741956; SLBMARKN=DDABBAKM");//用从chrome里获取的cookie就可以登录
httpget2.setHeader("Host", "zhjw.neu.edu.cn");
httpget2.setHeader("Referer", "https://zhjw.neu.edu.cn/ACTIONLOGON.APPPROCESS?mode=1&applicant=ACTIONQUERYSTUDENTSCHEDULEBYSELF");
httpget2.setHeader("Upgrade-Insecure-Requests", "1");
httpget2.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36");
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那你禁用COOKIES,在地址栏在加上COOKIE,试一试看看行不行呢