wie der Digest-Authentifizierung in android?
Ich bin erstellen einer Android app, wo ich bin Authentifizierung von Benutzername/Passwort über einen server.Anfangs server war die Umsetzung Basic
Authentifizierung, damit mein code funktioniert wurde aber jetzt server gewechselt hat, um Digest
Authentifizierung, damit mein Alter code nicht funktioniert.
Welche Veränderungen tun sollten, stellen Sie für die Verwendung Digest
Authentifizierung?
Mein code ist wie folgt:
private boolean authenticateUser()
{
try
{
String url_str = "http://serverweb.com/checkauthentication.php";
HttpPost post = new HttpPost(url_str);
Log.v("AUTHENTICATION URL = ", url_str);
post.addHeader("Authorization","Basic "+getCredentials());
ResponseHandler<String> responseHandler=new BasicResponseHandler();
String response_body = client.execute(post, responseHandler);
Log.v("SERVER RESPONSE DATA = ", response_body);
XMLDataParser.parseXML(XMLDataParser.USER_INFORMATION_PARSER_CODE, response_body);
List<Cookie> cookies = client.getCookieStore().getCookies();
if (!cookies.isEmpty())
{
for (int i = 0; i < cookies.size(); i++)
{
XMLData.cookie = cookies.get(i);
}
}
return true;
}
catch (MalformedURLException mue)
{
Log.i("MalformedURLException", " "+mue.getMessage());
displayDialog("User Does Not exist");
return false;
}
catch (IOException ioe)
{
Log.i("IOException", " "+ioe.getMessage());
displayDialog("User Does Not exist");
return false;
}
catch (Exception e)
{
Log.i("Exception", " "+e.getMessage());
displayDialog("Error");
return false;
}
}
private String getCredentials()
{
String u=edit_username.getText().toString();
String p=edit_password.getText().toString();
Log.v("USER NAME = ",u);
Log.v("PASSWORD = ",p);
return(Base64.encodeBytes((u+":"+p).getBytes()));
}
- deine URL funktioniert nicht
- Diese URL ist nicht wahr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie erstellen eine
HttpHost
undHttpContext
- Objekt mit den erforderlichen Anmeldeinformationen, und geben Sie es an die execute-Methode.Dies ist ein Beispiel-code, wo Sie Ihre Authentifizierung ist unabhängig von backend-auth. http-client von android kümmern Konvertierung ins entsprechende format. Überprüfen Sie diese Beispiel-code, dies ist nur für Ihre Referenz und nicht direkt in Ihrem code. 🙂
Diesen code in Ihre Tätigkeit:
Probe
AsyncActivity
: