1

我正在使用 loadDataWithBaseURL 加载所有页面。
第 1 步:登录(第 1 页)使用 php.ini 设置 cookie。
第 2 步:我检查 cookie,并加载登录页面。(第 2 页)
第 3 步:现在在第 2 页上,我再次使用 php 检查 cookie,如果未设置 cookie 或数据错误,则重定向到第 1 页。

似乎在第 2 步和第 3 步之间,cookie 数据丢失了,因为我被重定向回登录。
这是一些代码:

// Load login page
String urlIn = "http://myurl.com";    
String out = new Scanner(new URL(urlIn).openStream(), "UTF-8").useDelimiter("\\A").next();
webView.loadDataWithBaseURL("file:///android_asset/", out, "text/html", "UTF-8", null);


// User logged in, check for cookie and load page 2    
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
String cookie = cookieManager.getCookie("http://myurl.com");    
if(cookie != null && cookie.length() > 0){    
    String urlIn = "http://myurl.com/user/";
    String out = new Scanner(new URL(urlIn).openStream(), "UTF-8").useDelimiter("\\A").next();
    webView.loadDataWithBaseURL("file:///android_asset/", out, "text/html", "UTF-8", null);
}
4

1 回答 1

2

我希望loadDataWithBaseURL()忽略 cookie,只是因为不涉及 HTTP。Cookies 是一种 HTTP 结构,loadDataWithBaseURL()直接从您那里获取页面,而不是从 HTTP 获取。

Cookies 可能适用于对从加载的内容(例如,图像)发出的资源的 HTTP 请求。

于 2013-06-05T20:08:37.770 回答