如何退出HttpClient会话?
我使用以下代码使用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;
}
如下:
HttpClient client = new DefaultHttpClient();
client= httpRequest.loginToHexgen("mayank", "hexgen");
此处httpRequest
是使用loginToHexgen
方法的类。
如果我想使用不同用户名和密码的多个用户登录系统,该怎么做?
例如,在同一个会话中,我想注销一个用户并使用其他用户登录。
答案 0 :(得分:4)
您可以使用解决方法 - 使用新的cookieStore向新用户发送请求。
// Create a local instance of cookie store
cookieStore = new BasicCookieStore();
// Set the store
httpClient.setCookieStore(cookieStore);
服务器将为您的新用户打开一个新会话。请注意,旧会议将不会关闭。 我建议不要这样使用。
会话管理在服务器端执行 - 您无法在客户端执行此操作。 我建议在测试结束时,您应该调用服务器URL,这将使服务器端的会话无效。 (通常,使用表单身份验证的应用程序具有注销功能,您只需使用它)