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中,您还可以查看是否存在注销按钮/链接,而不是登录按钮/链接。