2012-01-16 57 views
0

Suppore我想在這裏登錄:http://www.vodafone.it/190/trilogy/jsp/home.do我用的是代碼: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 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()); 
     } 
    } 

如果這是正確的,我怎麼能知道,如果我在登錄?

+0

我不是HttpClient的專家,但你可以獲取你將被重定向到一旦你登錄或 – RanRag 2012-01-16 14:32:11

回答

1

有幾種方法可以找到。 (他們都不是標準的,檢查什麼適用於您。)

  1. 成功登錄後,一般情況下,網站redirect用戶一些主頁。如果登錄失敗,那麼當您重新登錄登錄頁面時,此重定向不會發生。因此,如果返回的http狀態碼是303或307,那麼您可以假設您的登錄成功。您可以使用瀏覽器使用某些瀏覽器插件(如Firefox中的FireBug)來驗證此情況。

  2. 如果上述情況不是真的(意思是沒有重定向),那麼您將直接在主頁上。在這種情況下,您可以檢查頁面的一些基本內容(通常指明頁面的全部內容)。頁眉是您可以閱讀的一種方式,以確保您在主頁上。

+0

沒有登錄的情況下2頁的URL,你也可以找一個註銷按鈕的存在/鏈接而不是登錄。 – Viruzzo 2012-01-16 15:40:06