Comment quitter la session HttpClient?Quitter la session HttpClient
J'utilise le code suivant pour vous connecter à l'application en utilisant Apache HttpClient
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;
}
comme ce qui suit:
HttpClient client = new DefaultHttpClient();
client= httpRequest.loginToHexgen("mayank", "hexgen");
ici httpRequest
est la classe où la méthode loginToHexgen
est utilisée.
Si je veux me connecter au système avec plusieurs utilisateurs avec différents nom d'utilisateur et mot de passe, comment faire cela?
Comme par exemple dans la même session, je veux me déconnecter d'un utilisateur et me connecter avec un autre utilisateur.
+1 pour la réponse, j'ai essayé d'envoyer un autre utilisateur avec un mot de passe différent mais à ma grande surprise, il ne créait aucun problème et travaillé comme je indenté. Merci pour l'effort. –
Le problème que vous avez le code suivant dans votre fonction 'loginToHexgen':' HttpClient client = new DefaultHttpClient(); '. Il est égal à la création de cookieStore pour un nouvel utilisateur. Remarques: 1. Si vous voulez accéder à l'URL au nom de l'utilisateur authentifié, vous devez utiliser la même instance HttpClient (sinon la requête sera sans cooekies). 2. Vous pouvez vérifier dans votre serveur et vous verrez que chaque connexion une nouvelle session est créée. – Michael