我创建了一个Android应用程序,因为我想从webview获取Session。
如何使它成为可能?
感谢。
答案 0 :(得分:0)
我使用此方法从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;
}
答案 1 :(得分:-1)
有两种方法:
如果开发人员制作了httpclient,并进行api auth调用并存储cookie。然后将httpclient的cookie与webview同步并本地维护会话。
如果用户使用网络视图进行身份验证呼叫,并且Cookie位于网络视图中。
第一个是您的代码,只需制作一个getter就会返回DefaultHTTPClient的实例。该实例也可以访问cookie。您可以对auth api进行异步调用以在实例中获取正确的cookie。确保在sync中保留HttpClient和Webview。
要在第二种方法中检索cookie,您可以使用CookieManager对象和用户登录的URL,您需要cookie,例如twitter.com。有关实现细节,请参阅第二篇文章here。