2017-01-10 50 views
0

頁我使用下面的代碼無法獲取使用的HtmlUnit

import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 

public class Test { 

public static void main(String[] args) 
{ 

    String url = "https://www.samsclub.com/sams/account/signin/login.jsp"; 

    try (final WebClient wc = new WebClient()) 

    {    
     wc.getCookieManager().setCookiesEnabled(true); 
     wc.getOptions().setUseInsecureSSL(true); 
     wc.getOptions().setJavaScriptEnabled(false); 
     wc.getOptions().setThrowExceptionOnScriptError(false); 
     wc.getOptions().setThrowExceptionOnFailingStatusCode(false); 
     wc.getOptions().setCssEnabled(false); 
     //wc.getOptions().setRedirectEnabled(true); 
     //wc.getOptions().setTimeout(0); 
     final HtmlPage page = wc.getPage(url); 
     System.out.println(page.asText()); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
} 

但是默認的超時java.net.SocketTimeoutException後:讀超時異常被拋出任何想法,爲什麼我沒有得到的登錄頁面?

+0

可能是因爲您的防火牆阻止了請求,或者因爲您通過代理連接到了Web。或者因爲服務器真的很慢,很難回答。 –

+0

@JBNizet沒有防火牆,該網站正在瀏覽器,所以我不認爲服務器緩慢是一個問題 – Haider

回答

0

這真的很奇怪。我在我的電腦上試過這個,也失敗了(瀏覽器上的網站看起來很好)。我甚至不能wgetcurl此頁面。

我試着也在改變劑等你可以自己用

curl -vvvv https://www.samsclub.com/sams/account/signin/login.jsp                  

檢查,所以你的程序是不是有問題,這個頁面只有一個,我強烈相信的那個問題是沃爾瑪的應用程序不是你的代碼。

爲了解決這個問題,您可以在瀏覽器中啓動調試模式,而不是檢查當您嘗試獲取頁面時發生了什麼。