从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值的头字段的名称即可