2016-06-22 17 views
2

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.

Antwort

1

Es ist schwierig, das genaue Problem zu bestimmen, das die verschiedenen Ergebnisse verursacht, ohne zu wissen, was für jede Variable zurückgegeben wird.

Bitte geben Sie die Werte cookiesHost und cookiesURL an, wenn Sie den Unterschied in den Cookies sehen.

Wie in der ersten Antwort auf Ihre Frage erwähnt, wenn Sie example.com (HOST) verwenden, wird eine Sitzung und ein Cookie für example.com erstellt, dann höchstwahrscheinlich eine Umleitung auf den BaseURL www.example.com eine neue Sitzung erstellt.

1

getHost() gibt nur den Domänennamen zurück. Zum Beispiel google.com aus http://google.com/search. Ich schätze, Ihre getUrl() Methode gibt die gesamte URL zurück.

Dies gibt der CookieManager Instanz verschiedene Eingänge, was zu unterschiedlichen Ausgängen führt.

+0

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

Verwandte Themen