Android - Session-Cookies
Ich muss Authentifizierung mit Benutzername und Passwort meiner website, die bietet Session-Cookies.
Ich bin das sammeln von Benutzernamen und Passwort aus dem EditText auf das Formular und übergeben es auf die Authentifizierung session.
@Override
public void onClick(View v)
{
String Username = username.getText().toString();
String Password = password.getText().toString();
String value = LoginAuthenticate.getSessionCookie(Username, Password);
//This is just check what session value is brought back
username.setText(value);
}
Benutzername und Passwort werden überprüft, ob Sie korrekt sind, zur Rückkehr der session-cookie.
public static String getSessionCookie(String username, String Passwort)
{
String login_url = "http://www.myexperiment.org/session/create";
URLConnection connection = null;
String sessionXML = "<session><username>" + username +
"</username><passsword>" + password +
"</password></session>";
String cookieValue = null;
try
{
URL url = new URL(login_url);
connection = url.openConnection();
connection.setRequestProperty("Content-Type", "application/xml");
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write(sessionXML);
out.close();
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
String headerName = null;
for (int i =0; (headerName = connection.getHeaderFieldKey(i)) != null; i++)
{
if(headerName.equals("Set-Cookie"))
{
cookieValue = connection.getHeaderField(i);
}
}
//return connection.getHeaderField("Set-Cookie:");
return cookieValue;
}
In der Manifest-Datei habe ich die Berechtigung setzen.
Gibt es keine Fehler, aber NULL umgestimmt am Ende. Ich habe (in debug) der Benutzername und das Kennwort korrekt sind, wird die der Funktion übergeben.
Ich hoffe mir kann hier jemand helfen.
Dank.
InformationsquelleAutor ankz_upadhyay | 2012-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Prüfen Sie diesen link aus: Wie mache ich einen http-request mit cookies auf Android?
Ich denke, dass ist die bevorzugte Methode zum festlegen und abrufen von cookies, nicht die Schleife durch die überschriften, wie Sie tun (überprüfen Sie das Ende der Funktion):
Ich brauche, um zu senden den Benutzernamen und das Kennwort als XML-Dokument im bestimmten format. String sessionXML = "<session><Benutzername>" + username + "</username><passsword>" + password + "</password></session - >";
Ich muss auch eingerichtet Content-Type auf "application/xml"; wie mache ich diese mit NameValuePairs? Können Sie mir helfen ?
Ich schlage nicht vor, dass Sie name-Wert-Paaren; diese sind für Formulare, die nicht XML-Dateien. Was ich bin, was Sie tun, ist zu versuchen, und verwenden Sie code wie cookies = httpclient.getCookieStore().getCookies(); if (cookies.isEmpty()) { System.aus.println("None"); } else { for (int i = 0; i < cookies.size(); i++) { System.aus.println("- " + cookies.get(i).toString()); } } um das cookie am Ende.
Danke für die Antwort. Ich schaffte es, diesen zu arbeiten. Ich merkte, es war Tippfehler, Fehler in meiner xml !!! (Es war immer gebunden zu sein, dumme Fehler). Ich veränderte paar Zeilen code für eine bessere Veröffentlichung der XML. Ich bin so dankbar für Ihre Hilfe und förderte es mich mehr zu Fragen, Frage nach meinem eigenen code. Vielen Dank für die Hilfe.
InformationsquelleAutor Alexandru Cristescu
Für alle interessierten, hier ist der funktionierende code. Seine ausüben, zeigen die für die Methode.
InformationsquelleAutor ankz_upadhyay