如何获取httponly cookies?我应该使用什么工具org.apache.http或jsoup,可能是url连接...请有人给我举个例子。我尝试使用jsoup获取cookie,但jsoup没有返回httponly cookie。 感谢!!!
答案 0 :(得分:0)
您可以使用java.net.CookieHandler
,引用于:Java Cookie Handling
直接从http://www.hccp.org/java-net-cookie-how-to.html:
获取的示例从回复中检索Cookie:
打开java.net.URLConnection
到服务器:
URL myUrl = new URL("http://www.hccp.org/cookieTest.jsp");
URLConnection urlConn = myUrl.openConnection();
urlConn.connect();
遍历响应标头寻找Cookie: 由于服务器可以在单个请求中设置多个cookie,因此我们需要遍历响应头,查找名为" Set-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名称和值: getHeaderField(int index)方法返回的字符串是一系列由分号(;)分隔的name = value。第一个名称/值配对是我们感兴趣的实际数据字符串(即" sessionId = 0949eeee22222rtg"或" userId = igbrown"),后续的名称/值配对是元信息我们将用它来管理cookie的存储(当它到期时等)。
cookie = cookie.substring(0, cookie.indexOf(";"));
String cookieName = cookie.substring(0, cookie.indexOf("="));
String cookieValue = cookie.substring(cookie.indexOf("=") + 1, cookie.length());
基本上就是这样。我们现在有cookie名称(cookieName
)和cookie值(cookieValue
)。
答案 1 :(得分:0)
请有人给我举个例子
这是Jsoup的一个。
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"}