Wie Beenden von HttpClient-Sitzung?Beenden von HttpClient-Sitzung
Ich verwende den folgenden Code an die Anwendung anmelden Apache Httpclient mit
public HttpClient loginToHexgen(String username, String password) {
HttpClient client = new DefaultHttpClient();
// send post url to login to hexgen
HttpPost post = new HttpPost("http://localhost:8080/j_spring_security_check");
try {
// set the user name and password
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("j_username", username));
nameValuePairs.add(new BasicNameValuePair("j_password", password));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
if (entity != null) {
post.abort();
}
} catch (IOException e) {
e.printStackTrace();
}
return client;
}
wie folgt aus:
HttpClient client = new DefaultHttpClient();
client= httpRequest.loginToHexgen("mayank", "hexgen");
hier httpRequest
die Klasse ist, wo die loginToHexgen
Methode verwendet wird.
Wenn ich mit mehreren Benutzer mit verschiedenen Benutzernamen und Passwort in das System einloggen möchte, wie dies zu tun?
Wie zum Beispiel in der gleichen Sitzung möchte ich einen Benutzer abmelden und mit anderen Benutzer anmelden.
+1 für die Antwort, ich habe versucht, verschiedene Benutzer mit anderem Kennwort zu senden, aber zu meiner Überraschung verursachte es kein Problem und funktioniert wie eingerückt. Danke für die Bemühung. –
Das Problem, dass Sie den folgenden Code in Ihrer Funktion 'loginToHexgen' haben:' HttpClient client = new DefaultHttpClient(); '. Dies entspricht der Erstellung von cookieStore für einen neuen Benutzer. Hinweise: 1. Wenn Sie im Namen des authentifizierten Benutzers auf die URL zugreifen möchten, müssen Sie dieselbe HttpClient-Instanz verwenden (andernfalls wird die Anfrage ohne Cookies ausgeführt). 2. Sie können Ihren Server einchecken und Sie werden sehen, dass bei jeder Anmeldung eine neue Sitzung erstellt wird. – Michael