2010-08-25 60 views
0

我在Groovy腳本中使用HtmlUnit從www.goodreads.com網站獲取csv文件。這個腳本直到最近纔開始工作,出現了一些奇怪的SSL錯誤。無法以編程方式使用HtmlUnit提交表單

下面是使用Groovy代碼

WebClient client = new WebClient(com.gargoylesoftware.htmlunit.BrowserVersion.INTERNET_EXPLORER_6); 
    client.setJavaScriptEnabled(false); 
    HtmlPage signIn = client.getPage("http://www.goodreads.com/user/sign_in"); 
    HtmlForm signInForm = signIn.getFormByName("sign_in") 
    signInForm.getInputByName("user[email]").setValueAttribute(username); 
    signInForm.getInputByName("user[password]").setValueAttribute(password); 
    println "I'm gonna click it !" 
    HtmlPage signedIn = signInForm.getInputByName("next").click() 

和相關@Grab

@Grab(group='net.sourceforge.htmlunit', module='htmlunit', version='2.8') 

每次運行這些代碼,我有

INFO: Bad input type: "email", creating a text input 
I'm gonna click it ! 
Caught: java.lang.RuntimeException: java.net.SocketException: java.security.NoSuchAlgorithmException: 
Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl) 
    at Goodreads.getCSV(goodreads.groovy:184) 
    at Goodreads.run(goodreads.groovy:38) 
    at Goodreads.main(goodreads.groovy:215) 

線184的存在時間signInForm.getInputByName("next").click()之一,我想這個錯誤發生。也許有一些關於goodreads SSL選擇的實現,這是

考慮我可以正確地登錄到該網站使用Opera,Firefox,該錯誤是如何出現的?更重要的是,我能做些什麼來解決它?

Additionnaly通知單目的地網址https://www.goodreads.com/user/sign_in

打開這個網址可以訪問一個網頁,歌劇院作爲指示TLS 1.0 256位AES(1024位DHE_RSA/SHA)

回答