Unten ist mein Code, um einige Cookies nach der Authentifizierung in einer Android-Anwendung zu erhalten.CookieManager.getCookie() gibt verschiedene Werte zurück
String url = "https://host:port/sso/SSOServlet";
BasicCookieStore cookieJar = new BasicCookieStore();
CookieManager cookieMgr = CookieManager.getInstance();
String host = null;
URL urlObj = Util.getUrl(url);
host = urlObj.getHost();
String cookiesHost = cookieMgr.getCookie(host); // value for cookiesHost is JSESSIONID
String cookiesURL = cookieMgr.getCookie(url); // value for cookiesURL is JSESSIONID and a custom Session id for application.
So cookieMgr.getCookie()
kehren anderer Wert für bestimmten Server, wenn ich host
statt url
. Warum das? Für einige Server gibt es dieselben Werte zurück, wenn ich entweder host
oder url
verwende. Warum könnte das passieren?
Dies war zuvor die gleichen Werte für Host OR URL zurückgegeben, aber dieser Server, mit dem ich arbeite, gibt die Werte, die ich in den Kommentaren des Codes erwähnt.
getUrl gibt ein URL-Objekt zurück. Aber unterschiedliche Eingabe, aber das ist bei einigen Servern nicht der Fall. Für die meisten Server, wenn Host verwenden, erhalte ich alle Cookies. Plötzlich stieß ich auf einen Server, der nicht alle Cookies für den Host zurückgab, aber ich änderte Host zu URL und nicht getCookie gibt alle Cookies zurück. – yogsma