Httpclient库登录

时间:2012-01-16 14:20:02

标签: java httpclient

我想在此登录:http://www.vodafone.it/190/trilogy/jsp/home.do并使用代码:

    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());
        }
    }

如果这是正确的,我怎么知道我是否已登录?

1 个答案:

答案 0 :(得分:1)

有几种方法可以找到它。 (它们都不是标准的。请检查适合您的内容。)

  1. 通常在成功登录后,网站redirect将用户转到某个主页。如果登录失败,则当您返回登录页面时,不会发生此重定向。因此,如果返回的http状态代码是303或307,那么您可以假设您的登录成功。您可以使用浏览器使用某些浏览器插件(如Firefox中的FireBug)验证这一点。

  2. 如果上述情况不属实(意味着没有重定向),那么您将直接在主页上。在这种情况下,您可以检查页面的一些基本内容(通常表明页面的内容)。页眉是您可以阅读以确保您在主页上的一种方式。