一个奇怪的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");
阅读 5.5k
1 个回答

那你禁用COOKIES,在地址栏在加上COOKIE,试一试看看行不行呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题