認証された通信に使用されるセッション Cookie を Android アプリに送信するサーバーがあります。同じサーバーを指す 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);