我创建了一个Android应用程序,我想从webview获得Session。
如何使之成为可能?
谢谢。
我使用这个方法从webview获取会话cookie:
public static String getCookieFromAppCookieManager(String url) throws MalformedURLException {
CookieManager cookieManager = CookieManager.getInstance();
if (cookieManager == null)
return null;
String rawCookieHeader = null;
URL parsedURL = new URL(url);
rawCookieHeader = cookieManager.getCookie(parsedURL.getHost());
if (rawCookieHeader == null)
return null;
return rawCookieHeader;
}
有两种方法:
-
如果一个开发人员做了一个httpclient,并做了一个api认证调用和存储cookie。然后你同步httpclient的cookie与webview和本地维护会话。
-
如果用户使用webview进行认证调用并且cookie驻留在webview中
第一个是你的代码,简单地创建一个getter将返回DefaultHTTPClient的实例。实例也可以访问cookie。您可以异步调用auth API来获取实例中的正确cookie。确保保持HttpClient和Webview同步。
对于在第二个方法中检索cookie,您将使用CookieManager对象和用户登录的url,例如twitter.com,参见这里的第二篇文章了解实现细节。