一个奇怪的cookie,sessionid问题

发布于 2022-09-06 22:09:31 字数 2794 浏览 14 评论 0

我遇到了一个很奇怪的问题。
我在用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赠佳期 2022-09-13 22:09:31

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文