Ich habe einen Server, der meiner Android-App ein Sitzungscookie sendet, das für die authentifizierte Kommunikation verwendet wird. Ich versuche, eine WebView mit einer URL zu laden, die auf denselben Server verweist, und ich versuche, das Sitzungscookie zur Authentifizierung zu übergeben. Ich beobachte, dass es zeitweise funktioniert, aber ich habe keine Ahnung warum. Ich verwende dasselbe Sitzungscookie, um andere Anrufe auf meinem Server zu tätigen, und diese scheitern nie an der Authentifizierung. Ich beobachte dieses Problem nur, wenn ich versuche, eine URL in eine WebView zu laden, und es tritt nicht jedes Mal auf. Sehr frustrierend.
Unten ist der Code, den ich dazu benutze. Jede Hilfe wird sehr geschätzt.
String myUrl = ""http://mydomain.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);