cookie值显示,但未登录 - WebView注入cookie

时间:2010-09-16 06:52:38

标签: android

我无法将cookie传递给WebView注入。我知道如何注入cookie。当注入cookie时,我想显示一个member.php,这个页面需要一个cookie。即使我注入了cookie,它也会显示错误页面。

WebView已正确加载,我尝试使用CookieManager类设置cookie。 Alll这是我所知道的。

从CookieStore我尝试打印出整个cookie本身;打印出来:

[[version: 0][name:SQMSESSID][value: 9166729532c975f261bda9e6e583bdba]
[domain: mydomain.com][path: /][expiry: null], [version: 0][name: key]
[value: vrckNRab][domain: mydomain.com][path: /][expiry: null]]

当我通过正确的用户名和密码时,应该提到上面的代码是成功的CookieStore。

我的inject + loadUrl代码:

CookieStore cookie = /* CookieStore cookie takes a CookieStore from my 
own function that succesful returns the CookieStore */
List<Cookie> listcookie = cookie.getCookies(); //Set my CookieStore to a list
Cookie setcookieOne = listcookie.get(0) //My cookie has two fields
Cookie setcookieTwo = listcookie.get(1) //....and assign these to a cookie

 CookieManager cookieManager = CookieManager.getInstance(); 
CookieSyncManager.createInstance(getApplicationContext());
cookieManager.setAcceptCookie(true);
 cookieManager.setCookie(setcookieOne.getDomain(), setcookieOne.getValue()); 
    cookieManager.setCookie(setcookieTwo.getDomain(), setcookieTwo.getValue()); 
  CookieSyncManager.getInstance().sync();
browse.setWebViewClient(new WebViewClient(){
}); 
browse.loadUrl("http://mypagethatwillredirectmeonacorrectcookie.php"); /* This
page will redirect if the cookie is successful */

为什么它没有显示member.php的任何想法?

1 个答案:

答案 0 :(得分:1)

首先,确保getValue()上的Cookie返回setCookie()所需的CookieManagerCookieManager需要“set-cookie的值:在http响应头中”; Cookie的{​​{1}}我怀疑只返回实际值(示例中为getValue())。

其次,永远不要使用9166729532c975f261bda9e6e583bdba,特别是对于GUI操作。请改用getApplicationContext(),因为ActivityActivity的子类。