HTTP Login Post und Get

  • 3 Antworten
  • Neuester Beitrag
Diskutiere HTTP Login Post und Get im Android App Entwicklung im Bereich Betriebssysteme & Apps.
F

FinelyDoyle

Neues Mitglied
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.
 
K

korndi

Neues Mitglied
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
 
F

FinelyDoyle

Neues Mitglied
super danke werd ich dann ausprobieren
 
F

FinelyDoyle

Neues Mitglied
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 - HTTP Login Post und Get Antworten Datum
20
12
0