不幸的是,Android上有很多cookie管理器.Cookie HttpURLConnection由以下人员维护,java.net.CookieManagerCookie WebView由以下人员维护android.webkit.CookieManager.这些cookie存储库是独立的,需要手动同步.
我的应用程序使用HttpURLConnections和显示WebViews(它是本机HTML混合).当然,我希望两者共享所有cookie - 所以我将在整个过程中进行透明会话.
进一步来说:
简单地说 - 我正在寻找双向同步.或者甚至更好,让它们都使用相同的cookie存储库.您可以假设它们同时处于活动状态(如在不同的选项卡上).
问题:
有没有办法让两个使用相同的cookie存储库?
如果没有,建议的做法是手动同步?什么时候我应该同步,怎么样?
相关问题:这个问题解决了类似的问题,但只实现了单向同步(HttpURLConnection - > WebView).
我最好的想法:我真的想避免手动同步,所以我试着想如何让两者都使用相同的存储库.也许我可以创建自己的扩展核心处理程序java.net.CookieManager.我将使用它将其设置为核心cookie处理程序java.net.CookieHandler.setDefault().它的实现将是android.webkit.CookieManager处理程序实例的代理(对于我只是访问webkit管理器的每个函数).
我已经看到了关于它应该如何与旧版本一起工作的答案,
DefaultHttpClient但是没有一个很好的例子HttpURLConnection
我正在使用HttpURLConnectionWeb应用程序发出请求.在我的Android应用程序开始时,我使用CookieHandler.setDefault(new CookieManager())自动处理会话cookie,这工作正常.
在登录后的某个时刻,我想用Web应用程序向用户显示实时页面WebView而不是在后台下载数据HttpURLConnection.但是,我想使用我之前建立的相同会话来防止用户再次登录.
如何复制饼干从java.net.CookieManager使用HttpURLConnection到android.webkit.CookieManager使用的WebView,所以我可以共享会话?
cookies android httpurlconnection single-sign-on android-webview