java - Httpclient库登录

标签 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. 通常在成功登录后,网站会将用户重定向到某个主页。如果登录不成功,则当您返回登录页面时,不会发生此重定向。因此,如果返回的http状态代码是303或307,那么您可以假设您的登录成功。您可以使用带有某些浏览器插件(例如 Firefox 中的 FireBug)的浏览器来验证这一点。

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

关于java - Httpclient库登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881283/

相关文章:

java - 如何用java恢复备份文件(mysql)?

Java从字节数组中获取字符串

c# - HttpClientHandler 抛出 PlatformNotSupportedException

java - 有时必须等待很长时间,直到 HttpClient.execute() 抛出异常

java - 为什么 HttpClient 不发送我的 Cookie?

java - Android:上传字符串到服务器

java - Hibernate、Spring - 事务

java - DNA 到 RNA 的转换 Java Swing : Why aren't my JButtons working?

java - 将 Java 应用程序放入 Mac OS X 上的 Dock

android - 使用 HttpClient 的 HTTP Post 请求需要 2 秒,为什么?