HTTP Login Post und Get

F

FinelyDoyle

Neues Mitglied
0
Hallo zusammen,

ich möchte mich mit meiner App auf einer Seite einloggen die folgenden Loginform aufweist:
Code:
<form action="/example/index.php" method="POST"> 
   <input type="text" class="iuser" name="user">&nbsp;
   <input type="password" class="ipass" name="pass">&nbsp;
   <input type="hidden" name="a" value="login">
   <input type="hidden" name="l" value="1">
</form>
mit dem code erhalte ich auch den conten der Seite nach erfoglreichen login:

Code:
        String user = "username";
        String pwd = "password";
        String a = "login";
        String l = "1";
        String source = "";
        
        String data = "user" + "=" + user+ "&" + "pass" + "=" + pwd + "&" + "a" + "=" + a + "&" + "l" + "=" + l;
        try{
        // Send data
        URL url = new URL(adr); 
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
        
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        
        while ((line = rd.readLine()) != null) {
            source = source + "\n"+ line;
        }
        wr.close();
        rd.close();
        }catch (Exception e) {
        }
mir stellt sich jetzt die Frage: Wie kann ich als eingeloggter User auf der Seite weiter navigieren?

Wenn ich einfach eine neue Connection aufmache bin ich nicht mehr eingeloggt.

Ich würde gerne auf die erhaltene URL (eingeloggt) wieder eine Get anfrage senden.
 
Erstelle eine Session in PHP : Quakenet/#php Tutorial - de - Sessions
Gib beim Login die Session id zurück und speicher sie in android. Beim Aufruf der neuen seite (php) gib die session id wieder mit und überprüf ob die sessionid korrekt ist
 
  • Danke
Reaktionen: FinelyDoyle
super danke werd ich dann ausprobieren
 
Ich hab es jetzt ausprobiert indem ich die PHP Session ID aus dem HTTP Header gelesen habe und diese dann bei der nächsten GET Abfrage mit ?PHPSESSID=xxx mitgeben habe. Doch leider wird die Session nicht fortgesetzt. Ich nehme an, dass weil der Server nicht auf die Session ID als GET wartet wird die einfach ignoriert.

vom Server erwartete GET Abfrage: http://example.com/index.php?l=1&p=index&r=12

von mir gesendete GET Abfrage: http:// example.com/ index.php?PHPSESSID=xxx&l=1&p=index&r=12

Gibt es eine Möglichkeit die erwartete GET Abfrage zu senden und trotzdem die session id mit zu senden?

Mein Code:
Code:
        String user = "username";
        String pwd = "password";
        String a = "login";
        String l = "1";
        String sessionurl = "http://example.com/index.php?PHPSESSID=";
        String get = "&l=1&p=index&r=12";
        String source = "";
 
        String data = "user" + "=" + user+ "&" + "pass" + "=" + pwd + "&" + "a" + "=" + a + "&" + "l" + "=" + l;
        try{
        // Send data
        URL url = new URL(adr); 
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
 
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
 
        while ((line = rd.readLine()) != null) {
            source = source + "\n"+ line;
        }
        wr.close();
        rd.close();
 // Get SessionID
 Map<String, List<String>> headers = conn.getHeaderFields();
     String sessionId = headers.get("Set-Cookie").toString();
     sessionId = sessionId.substring(sessionId.indexOf("=")+1, sessionId.indexOf(";"));
     System.out.println(sessionId);
 // resume session
 url = new URL(sessionurl + sessionID + get);
 conn = url.openConnection();
        rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        while ((line = rd.readLine()) != null) {
            source = source + "\n"+ line;
        }
        wr.close();
        rd.close();
        }catch (Exception e) {
        }
 

Ähnliche Themen

F
Antworten
0
Aufrufe
841
FlorianAlfredo
F
M
  • MikelKatzengreis
Antworten
5
Aufrufe
172
swa00
swa00
R
  • RacingSystems
Antworten
12
Aufrufe
982
jogimuc
J
Zurück
Oben Unten