簡體   English   中英

Java HttpURLConnection沒有cookie

[英]Java HttpURLConnection no cookies

英語:

您好,我目前正在嘗試使用HttpURLConnection登錄,然后獲取會話cookie ...

我已經在我自己的服務器上的某些測試頁上進行了嘗試,並且效果很好。 當我發送“ a = 3&b = 5”時,我得到的cookie是“ 8”(PHP頁面將兩者加在一起)! 但是當我在另一頁上嘗試時,輸出只是該頁,就好像我只是用POST沒發送任何東西一樣:(

歡迎提出一般改進建議! :)

我的代碼:

HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("useragent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0");
conn.setRequestProperty("Connection", "keep-alive");
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes("USER=tennox&PASS=*****");
out.close();

BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
String response = new String();
while ((line = in.readLine()) != null) {
    response = response + line + "\n";
}
in.close();

System.out.println("headers:");
int i = 0;
String header;
while ((header = conn.getHeaderField(i)) != null) {
    String key = conn.getHeaderFieldKey(i);
    System.out.println(((key == null) ? "" : key + ": ") + header);
    i++;
}
String cookies = conn.getHeaderField("Set-Cookie");
System.out.println("\nCookies: \"" + cookies + "\"");

我看到以下為什么您沒有獲得Cookie的可能性。

  • 服務器根本不發送cookie
  • 服務器不使用值PASS和USER
  • 服務器希望在登錄之前進行會話。
  • POST協議錯誤或不完整
  • 服務器希望通過GET獲得參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM