[英]Java web start application failed to retrieve cookie value of Set-Cookie
我在Java Web Start应用程序中遇到了与会话相关的问题。
Java Web Start应用程序将使用URLConnection java类通过http(而非https)连接到服务器。
建立连接后,我从Java控制台中发现了以下日志
network: Server http://x.x.x.x:xxxx/xxxx/xx/xxx requesting to set-cookie with
"JSESSIONID=xxxxxxxxxxxxxxx"; Path=/xxx/; HttpOnly"
但是,在代码中,Set-Cookie值是一个空字符串
URLConnection urlConn = url.openConnection();
urlConn.setUseCaches(false);
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
urlConn.setRequestProperty("Content-Type", "application/java-serialized-object");
ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(urlConn.getOutputStream()));
out.writeObject(input);
out.flush();
out.close();
String cookieval = urlConn.getHeaderField("Set-Cookie");
if(cookieval == null)
System.out.println("Set-Cookie is null");
else if("".equals(cookieval))
System.out.println("Set-Cookie is empty");
控制台输出:
Set-Cookie is empty
Java Web Start使用的JRE是1.7.0.67
知道如何检索Set-Cookie值吗?
好的,我们设法找到了答案。 通过添加以下行来修复
java.net.CookieHandler.setDefault(null);
参考:
客户端不使用Windows的JRE 1.7使用URLConnection发送会话cookie
希望这对某人有所帮助。
标头中的HttpOnly标志必须未设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.