Java Httpclient库登录
支持我要在此处登录:我使用以下代码:Java Httpclient库登录,java,httpclient,Java,Httpclient,支持我要在此处登录:我使用以下代码: HttpGet httpget = new HttpGet("http://www.vodafone.it/190/trilogy/jsp/home.do"); HttpResponse response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); System.out.println("Initial set of co
HttpGet httpget = new HttpGet("http://www.vodafone.it/190/trilogy/jsp/home.do");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Initial set of cookies:");
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
//Visito la pagina del Login
HttpPost httpost = new HttpPost("https://www.vodafone.it/190/trilogy/jsp/login.do");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("username", ""));
nvps.add(new BasicNameValuePair("password", ""));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
System.out.println("Post logon cookies:");
cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
HttpGet-HttpGet=new-HttpGet(“http://www.vodafone.it/190/trilogy/jsp/home.do");
HttpResponse response=httpclient.execute(httpget);
HttpEntity=response.getEntity();
System.out.println(“cookies的初始集:”);
列表cookies=httpclient.getCookieStore().getCookies();
if(cookies.isEmpty()){
系统输出打印项次(“无”);
}否则{
对于(int i=0;i
如果它是正确的,我如何知道我是否已登录?有几种方法可以找到这一点。(它们都不是标准的。请检查适用于您的内容。)
会将用户重定向到某个主页。如果登录失败,则此重定向不会发生,因为您已返回登录页面。因此,如果返回的http状态码是303或307,则可以假定您的登录成功。您可以使用浏览器和一些浏览器附加组件(如Firefox中的FireBug)来验证这一点
我不是httpclient专家,但您可以在登录或未登录后获取重定向到的页面的url。在案例2中,您还可以查看是否存在注销按钮/链接,而不是登录按钮/链接。