1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Session erzeugen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von lowterm, 21.11.2010.

  1. lowterm, 21.11.2010 #1
    lowterm

    lowterm Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    13.11.2010
    Hallo Forum,

    ehrlich gesagt, ich weiss es nicht, wie ich mein Problem Schildern soll.
    Am besten sage ich, wie es im Browser abläuft:
    Es gibt eine Seite, Seite1 genannt, mit einer Auswahlliste. Wenn man diese im Browser aufruft, wird eine Session erzeugt. Wählt man aus der Auswahlliste einen Eintrag und klickt auf den Button, wird ein neues Fenster geöffnet. Der inhalt dieser Seite (Seite2 genannt) wird genau so wie Seite1 dynamisch zusammengesetzt. Wenn aber die Session, die bei dem Aufruf der Seite1 erzeugt wurde, abgelaufen ist oder warum auch immer nicht da ist, landet man immer wieder auf der Seite1.

    Mein Problem ist:
    Ich muss den Quellcode der Seite1 über Android parsen, die dynamische Auswahlliste auslesen und anzeigen. Nach dem Auswahl muss ich die URL von Seite2, die auch dynamisch zusammengesetzt wird aber aus der Seite1 extrahierbar ist zusammensetzen und über diese dann die Seite2 parsen. Das problem ist, dass ich immer wieder die Seite1 zurückbekomme. Anscheint wird irgendwie die Session da nicht gesetzt.

    Habt ihr vielleicht eine idee, wie man dies umgehen könnte.

    Danke im Voraus
     
    Zuletzt bearbeitet: 21.11.2010
  2. klausa2, 21.11.2010 #2
    klausa2

    klausa2 Fortgeschrittenes Mitglied

    Beiträge:
    298
    Erhaltene Danke:
    20
    Registriert seit:
    08.07.2009
    HttpClient kann mit Sessions umgehen.
    Also die Verbindung über den herstellen, aus der response die Cookies (da ist alles was zu Session gehört drin) auslesen, die Seite wie immer Du willst verarbeiten und beim nächsten request zum server alle erforderlichen Cookies wieder im HttpClient verstauen.
    Falls Du die selbe Instanz vom HttpClient verwendest hat der auch noch akkes gespeichert, und Du musst Dich gar nicht um Cookies kümmern.
     
  3. lowterm, 22.11.2010 #3
    lowterm

    lowterm Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    13.11.2010
    Hi,

    vielen Dank für deine Antwort.
    Da ich leider Kein Profi in dem Bereich bin, bin ich mit deiner Antwort etwas überfordert.

    Der Quellcode sieht bei mir so aus:

    Code:
           String url1 = "Seite1";
           String url2 = "Seite2";
     
            HttpGet httpget = new HttpGet(url1 oder url2);
            HttpResponse res = null;
            DefaultHttpClient httpclient = new DefaultHttpClient();
     
            final HttpParams params = new BasicHttpParams();
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
            HttpProtocolParams.setUseExpectContinue(params, false);
            httpclient.setParams(params);
            httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, 
            CookiePolicy.BROWSER_COMPATIBILITY);
     
      try {
             res = httpclient.execute(httpget);
            } catch (ClientProtocolException e1) {
             e1.printStackTrace();
            } catch (IOException e1) {
             e1.printStackTrace();
      }
    
    1. Ich glaube nicht, dass ich an dieser Stelle dieselbe httpclient benutzen kann, weil ich ja zwei unterschidelichen URLs nacheinder aufrufe.
    2. Wie kann ich an dieser Stelle die Cookie aus der Response auslesen und wie kann ich diese wieder im HttpClient wieder anhängen?

    Ist meine Vorgehensweise überhaupt so richtig?

    Danke im Voraus.
     
  4. klausa2, 22.11.2010 #4
    klausa2

    klausa2 Fortgeschrittenes Mitglied

    Beiträge:
    298
    Erhaltene Danke:
    20
    Registriert seit:
    08.07.2009
    1. Doch, du kannst und sollst den selben HttpClient verwenden. Versuchs erst mal auf die ganz dumme Weise, indem du gar keine Parameter setztest - die meisten, die du angegeben hast sind nämlich Default.

    2. Hier ist ein prima Tutorial mit Beispielen:
    HttpClient Tutorial
     
  5. lowterm, 26.11.2010 #5
    lowterm

    lowterm Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    13.11.2010
    Hi,

    ich bedanke mich für deine Hilfe. Ich habe es endlich geschafft, die Seite mit demselben httpclient aufzurufen.

    Gruß
     

Diese Seite empfehlen