Java CookieManager为什么获取不到cookie,我获取响应头的时候能看到set-cookie这个头部呀

题目描述

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
URL url = new URL("HTTP://km.oa.com");

    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setInstanceFollowRedirects(false);
    CookieManager manager = new CookieManager();
    manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
    CookieHandler.setDefault(manager);
    
    con.getInputStream();
    System.out.println(con.getResponseCode());
    CookieStore store = manager.getCookieStore();
    List<HttpCookie> cookie = store.getCookies();
    System.out.println(cookie);
    for (HttpCookie coo : cookie) {
        System.out.println(coo);
    }
    String str = con.getHeaderField("set-cookie");
    System.out.println(str);

你期待的结果是什么?实际看到的错误信息又是什么?

图片描述

阅读 3.7k
1 个回答

需要在

manager.getCookieStore();之前再做一次openConnection();和getInputStream();
也可以考虑用HttpClient获取cookie
CookieStore cookieStore = new BasicCookieStore();
httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
List<Cookie> cookies = cookieStore.getCookies();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题