Session erzeugen

L

lowterm

Neues Mitglied
0
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:
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.
 
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.
 
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
 
Hi,

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

Gruß
 

Ähnliche Themen

M
  • maksimilian
Antworten
3
Aufrufe
1.469
maksimilian
M
E
Antworten
1
Aufrufe
1.587
enrem
E
Zurück
Oben Unten