Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpURLConnection登录时没有cookies_Java - Fatal编程技术网

Java HttpURLConnection登录时没有cookies

Java HttpURLConnection登录时没有cookies,java,Java,我目前正在尝试使用HttpURLConnection登录,然后获取会话cookie 我已经在我自己的服务器上的一些测试页面上尝试过了,而且效果非常好。当我发送a=3&b=5时,我得到8作为cookie(PHP页面将两者相加)! 但当我在另一个页面上尝试时,输出只是页面,就好像我只是在POST中不发送任何内容一样:( 欢迎提出一般性的改进建议!:) 我的代码: HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnect

我目前正在尝试使用HttpURLConnection登录,然后获取会话cookie

我已经在我自己的服务器上的一些测试页面上尝试过了,而且效果非常好。当我发送
a=3&b=5
时,我得到
8
作为cookie(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路径最初应设置为
;Path=/
,也需要在帖子的请求头中设置Cookie


最好用一个“.

我应该在哪里/如何设置?”?像这样的饼干?conn.setRequestProperty(“Set Cookie”、“true”)<代码>conn.setRequestProperty(“Cookie”,“xxx=yyy;Path=/”查看OK,但是我从哪里知道xxx和yyy?在浏览器(比如Firefox)中,你可以检查来自站点的cookie,看看模仿和期待什么。好吧,看看这个页面:在我登录之前没有cookie,所以我发送给用户并传递post数据,但我没有得到cookie,在输入流中我得到了正常的登录页面。。。