我有一个服务器,它向我的 android 应用程序发送一个会话 cookie,用于经过身份验证的通信。我正在尝试使用指向同一服务器的 URL 加载 WebView,并且我正在尝试传入会话 cookie 以进行身份验证。我观察到它间歇性地工作,但我不知道为什么。我使用相同的会话 cookie 在我的服务器上进行其他调用,并且这些调用永远不会失败。我仅在尝试在 WebView 中加载 URL 时观察到此问题,并且并非每次都发生。非常令人沮丧。
下面是我用来执行此操作的代码。任何帮助将不胜感激。
String myUrl = "http://example.com/";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
Cookie sessionCookie = getCookie();
if(sessionCookie != null){
String cookieString = sessionCookie.getName() +"="+sessionCookie.getValue()+"; domain="+sessionCookie.getDomain();
cookieManager.setCookie(myUrl, cookieString);
CookieSyncManager.getInstance().sync();
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
webView.loadUrl(myUrl);