2014-06-27 6 views
7

Kann mir jemand bitte eine Möglichkeit vorschlagen, Cookies in robospice Retrofit HTTP-Anfragen zu verwalten.Verwendung von Cookies mit Robospice Retrofit-Anfragen

Ich habe ein Authentifizierungssystem, das eine Anmeldung hat, ein paar GET HTTP-Anfragen und eine Abmeldung.

Während der Anmeldung muss ich die Sitzung speichern und die gleiche Sitzung für den Rest GET HTTP-Anfragen verwenden und wenn ich logout die Sitzung gelöscht werden muss.

Hier ist die Anmeldung eine HTTP POST-Anforderung, die Daten über JSON-Format sendet und BEKOMMT. Ich benutze Robospice Retrofit, da es einfach die An- und Abmeldeanforderungen verwaltet.

Antwort

7

Sie können systemweite Cookie-Handler über java.net.CookieManager

CookieManager cookieManager = new CookieManager(); 
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); 
CookieHandler.setDefault(cookieManager); 

in Ihrer benutzerdefinierten Application Klasse.

Cookies löschen nach dem Abmelden Sie Methode wie diese

public void clearCookies() { 
    cookieManager.getCookieStore().removeAll(); 
} 
+0

nur für API> = 9 Recht Es funktioniert nicht verwenden kann? Ich brauche die Unterstützung für Android API 8 auch –

+0

@RevanthGopi ja, das ist richtig. Sie können die API-Ebene zur Laufzeit überprüfen (wie Retrofit) und mit der Cookie-Verwaltung von 'java.net.CookieManager' für API> = 9 und mit Apache' BasicCookieStore' für API <9 arbeiten. Sehen Sie sich diese Frage für einen möglichen Weg an von 'BasicCookieStore': http://stackoverflow.com/questions/18894540/using-retrofit-with-cookie-persistence – colriot