我无法将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的任何想法?
答案 0 :(得分:1)
首先,确保getValue()
上的Cookie
返回setCookie()
所需的CookieManager
。 CookieManager
需要“set-cookie的值:在http响应头中”; Cookie
的{{1}}我怀疑只返回实际值(示例中为getValue()
)。
其次,永远不要使用9166729532c975f261bda9e6e583bdba
,特别是对于GUI操作。请改用getApplicationContext()
,因为Activity
是Activity
的子类。