[英]How to get httpOnly cookies from android.webkit.CookieManager
[英]How to get httponly cookies from a Java client?
如何獲取httponly cookie? 我應該使用什么工具org.apache.http或jsoup,可能是url連接...請任何人給我示例。 我嘗試使用jsoup獲取cookie,但是jsoup不返回httponly cookie。 謝謝!!!
您可以使用在Java Cookie處理中引用的java.net.CookieHandler
。
作為直接從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
)。
請任何人給我榜樣
這是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"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.