无法在Java中获取Set-Cookie属性

时间:2014-12-07 20:22:13

标签: java cookies properties

我有一个java方法,它应该获得Set-Cookie属性以便登录到网页。但 conn.getHeaderFields()。get(“Set-Cookie”)不会返回任何内容。有什么建议?

  private String GetPageContent(String url) throws Exception {

URL obj = new URL(url);
conn = (HttpsURLConnection) obj.openConnection();

// default is GET
conn.setRequestMethod("GET");

conn.setUseCaches(false);

// act like a browser
conn.setRequestProperty("User-Agent", USER_AGENT);
conn.setRequestProperty("Accept",
        "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
conn.setRequestProperty("Accept-Language", "s-CZ,cs;q=0.8,en;q=0.6");
if (cookies != null) {
    for (String cookie : this.cookies) {
        conn.addRequestProperty("Cookie", cookie.split(";", 1)[0]);
    }
}
int responseCode = conn.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);

BufferedReader in = 
        new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}

in.close();

// Get the response cookies

System.out.println(conn.getHeaderFields().get("Set-Cookie")); //print for testing
setCookies(conn.getHeaderFields().get("Set-Cookie"));

return response.toString();

整个计划:http://pastebin.com/3nB682L7

任何..: - ?)

1 个答案:

答案 0 :(得分:1)

最近的Java版本已经修复了#34; URLConnection隐藏标记为HttpOnly的cookie,我不认为有禁用它的设置。我建议您使用HttpClient中的Apache HttpComponents