有关HttpClient模拟用户登录问题,网上资料介绍很多,在我要登录的站点是用Acegi控制权限的,测试多次都不成功,不知道什么原因。
Souce Code:
HttpClient client = new HttpClient();
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
try {
PostMethod post = new PostMethod("http://localhost:8080/test/");
NameValuePair name = new NameValuePair("j_username", "aaa");
NameValuePair pass = new NameValuePair("j_password", "111");
post.setRequestBody(new NameValuePair[]{name,pass});
int status = client.executeMethod(post);
System.out.println(status);
System.out.println(post.getResponseBodyAsString()); // 得到的还是登录页面的内容
post.releaseConnection();
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
在使用Struts2开发Web应用时,如果使用Date类型数据时,Struts2会调用Date转换器来处理页面的Date字符串到Date类型的转换,在阅读了Struts2的Code后,发现Date转换器使用的日期格式都不是中文日期格式,而我们的日期字符串格式为2008-05-26 12:00,当找不到对应的日期格式时,Struts2会用短日期格式来处理(yy-MM-dd),这时如果我们需要长日期格式的数据,在日期转换后是拿不到准确数据的,不知道有没有同仁处理过类似的问题,欢迎大家给个合适的解决方案。