Verarbeitet HttpGet Cookies automatisch?

8

Ich möchte eine Sitzung beibehalten, während ich mit HttpGet eine Verbindung zum Server herstelle, und ich muss verstehen, wie Cookies behandelt werden.

Der Server-Entwickler sagt, dass er alle Cookies selbst handhabt. Ich verwende HttpGet-Anfrage, um auf den Server wie folgt zuzugreifen:         InputStream isResponse = null;

%Vor%
  1. Soll ich etwas mehr tun? Bringt er den Cookie automatisch auf mein Gerät und die HttpGet-Methode weiß, um ihn zu verwenden, um die Session-ID mit dem Cookie zu behalten?

  2. Wie kann ich überprüfen, ob der Cookie auf meinem Gerät existiert, um zu wissen, ob die Sitzung "lebt"?

  3. Falls ich den folgenden Code verwende, um den Cookie zu erhalten:

    %Vor%

behandelt die HttpGet die Cookies immer noch wie zuvor?

  1. Ich sehe, dass DefaultHttpClient (mClient im obigen Code) seinen eigenen CookieStore hat. Wie kann ich die Cookies speichern und beim nächsten Erstellen laden?
Asaf Pinhassi 15.09.2011, 07:50
quelle

3 Antworten

5

Also ... Nachdem ich mir stundenlang den Kopf gebrochen und meinen eigenen primitiven CookieStore implementiert hatte, fand ich eine Android Asynchronous Http Client Implementierung, die ein nettes Programm enthält PersistentCookieStore, der großartig funktioniert! Einfach das Glas zu meinem Projekt hinzugefügt und es wie folgt verwendet:

%Vor%

und das war's! Die Cookies werden gespeichert und wiederverwendet, wenn die Anwendung wieder geöffnet wird.

Danke James Smith, wo immer du bist. Du hast wenigstens einen Mann glücklich gemacht.

Wenn jemand an meiner eigenen primitiven Implementierung interessiert ist (die auch funktioniert), ist es hier:

%Vor%     
Asaf Pinhassi 15.09.2011, 16:36
quelle
1

Nein, Cookies werden nicht automatisch verarbeitet. Um Cookies zu speichern, verwenden Sie automatisch BasicCookeStore

Weitere Informationen über Nutzung ist hier: Ссылка

Siehe auch diese Antwort: Android Httpclient persistente Cookies

    
Peter Knego 15.09.2011 08:00
quelle
0

Ich musste mich nicht um Cookies kümmern. Wenn ich mein DefaultHttpClient erstelle und das httpclient.execute(httpget); als hier speichert das Objekt die Sitzung darauf. Also mache ich zuerst den Login und später kann ich die privaten Funktionen meiner API nutzen. Wenn ich mich abmelden möchte, erstelle ich eine neue Instanz meines Objekts DefaultHttpClient oder rufe die Logout-Funktion auf.

Wenn Sie also die Cookie-Informationen verwenden möchten, verwenden Sie den CookieStore, wenn Sie nicht einfach eine Singleton-Instanz verwenden, um das Objekt DefaultHttpClient

am Leben zu erhalten     
Dayerman 15.09.2011 08:34
quelle