从java请求头获取cookie

从java请求头获取cookie,java,httpurlconnection,Java,Httpurlconnection,我正在尝试获取一个sessionidcookie,您可以在查看网页时使用它。例如,在Chrome上右键单击页面>检查>网络>(使用F5刷新) 我正在尝试使用URLConnection库,如下所示: URLConnection connection = new URL("http://website.com/link/to/some_wsdl?wsdl").openConnection(); 连接中的字段如下所示: 请求: keys: 0 = "GET /link/to/some_wsdl?w

我正在尝试获取一个
sessionid
cookie,您可以在查看网页时使用它。例如,在Chrome上右键单击页面>检查>网络>(使用F5刷新)

我正在尝试使用URLConnection库,如下所示:

URLConnection connection = new URL("http://website.com/link/to/some_wsdl?wsdl").openConnection();
连接中的字段如下所示:

请求:

keys:
 0 = "GET /link/to/some_wsdl?wsdl HTTP/1.1"
 1 = "User-Agent"
 2 = "Host"
 3 = "Accept"
 4 = "Connection"
values:
 1 = "Java/1.8.0_131"
 2 = "iccdev.ejgallo.com"
 3 = "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
 4 = "keep-alive"
答复:

keys:
 1 = "Date"
 2 = "Server"
 3 = "X-Powered-By"
 4 = "Keep-Alive"
 5 = "Connection"
 6 = "Transfer-Encoding"
 7 = "Content-Type"
 8 = "Content-Language"
values:
 0 = "HTTP/1.1 200 OK"
 1 = "Tue, 20 Jun 2017 00:35:53 GMT"
 2 = "Oracle-Application-Server-11g"
 3 = "Servlet/2.5 JSP/2.1"
 4 = "timeout=5, max=100"
 5 = "Keep-Alive"
 6 = "chunked"
 7 = "text/xml; charset=utf-8"
 8 = "en"
问题是我缺少一个sessionid条目,该条目应该位于前缀为
distsite=sessionid=


编辑:我问这个问题已经有一段时间了,但我还是把这个留在这里,以防其他人有类似的问题


从本质上说,我所寻找的cookie是由我们的自定义LDAP实现在内部使用的cookie,它仅通过使用所述LDAP实现进行身份验证来创建。cookie用于SSO(单点登录),因此浏览器可以通过标准协议轻松获取。由于我使用Java在没有正确身份验证的情况下获取cookie,因此我不会在调用LDAP API的响应中获取cookie。

cookie被键入
JSESSIONID
,因此像这样检索


String sessionId=connection.getHeaderField(“JSESSIONID”)

connection.getHeaderField(“JSESSIONID”)
返回
null
。我上面提供的字段是使用此方法似乎存在的唯一字段。你知道为什么它是看不见的,除非我看它像检查或小提琴?服务器是否必须响应sessionid并以某种方式将其注入请求头?如果客户端不发送cookie头,则无法在服务器端检索它,我假设服务器后端是Java,在这种情况下,cookie头键入
JSESSIONID
(存储cookie值的头字段的名称),只需将
connection.getHeaderField(“JSESSIONID”)
替换为存储cookie值的头字段的名称即可