如何从Java客户端获取httponly cookies?
如何获取httponly cookies?我应该使用org.apache.http或jsoup的哪些工具,可能是url连接。。。请任何人给我举个例子。我尝试使用jsoup获取cookies,但jsoup不返回httponly cookies。如何从Java客户端获取httponly cookies?,java,http,cookies,Java,Http,Cookies,如何获取httponly cookies?我应该使用org.apache.http或jsoup的哪些工具,可能是url连接。。。请任何人给我举个例子。我尝试使用jsoup获取cookies,但jsoup不返回httponly cookies。 谢谢 您可以使用java.net.CookieHandler,参考地址: 例如,直接取自: 从响应中检索cookie: 打开到服务器的java.net.URLConnection: URL myUrl = new URL("http://www.hccp.
谢谢 您可以使用
java.net.CookieHandler
,参考地址:
例如,直接取自:
从响应中检索cookie:
打开到服务器的java.net.URLConnection
:
URL myUrl = new URL("http://www.hccp.org/cookieTest.jsp");
URLConnection urlConn = myUrl.openConnection();
urlConn.connect();
通过响应头循环查找Cookie:
由于服务器可能在一个请求中设置多个Cookie,因此我们需要循环遍历响应头,查找所有名为“set Cookie”的头
从cookie字符串中提取cookie名称和值:
getHeaderField(int index)方法返回的字符串是一系列名称=值,由分号(;)分隔。第一个名称/值配对是我们感兴趣的实际数据字符串(即“sessionId=0949eeee2222rtg”或“userId=igbrown”),随后的名称/值配对是我们将用于管理cookie存储的元信息(当cookie过期时,等等)
基本上就是这样。现在我们有了cookie名称(cookieName
)和cookie值(cookieValue
)
请任何人给我举个例子
这里有一个是关于Jsoup的
示例代码
输出
我们需要更多的信息-你是如何做到这一点的?是一个类似Tomcat的servlet环境,或者只是一个java程序。您有任何可以共享的代码吗?apache http应该能够简单地读取
Set Cookie
头。不知道JSOUP位,它可能也可以这样做。无论它是不是HttpOnly,在浏览器之外基本上是不相关的。代码不起作用。headerName不等于“设置Cookie”。但是Cookie真的管用!我在这里找到了一个例子
String headerName=null;
for (int i=1; (headerName = uc.getHeaderFieldKey(i))!=null; i++) {
if (headerName.equals("Set-Cookie")) {
String cookie = urlConn.getHeaderField(i);
...
cookie = cookie.substring(0, cookie.indexOf(";"));
String cookieName = cookie.substring(0, cookie.indexOf("="));
String cookieValue = cookie.substring(cookie.indexOf("=") + 1, cookie.length());
Response response;
try {
response = Jsoup //
.connect("https://httpbin.org/cookies/set?http-only-cookie=test;%20httponly") //
.ignoreContentType(true) //
.execute();
System.out.println(response.cookies());
} catch (IOException e) {
throw new RuntimeException(e);
}
{http-only-cookie="test\073 httponly"}