2010-08-25 5 views
0

J'utilise HtmlUnit dans un script Groovy pour obtenir un fichier csv à partir du site www.goodreads.com. Ce script fonctionnait jusqu'à récemment, où une étrange erreur SSL est apparue.Impossible de soumettre le formulaire par programme en utilisant HtmlUnit

Voici le code de Groovy utilisé

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

Et le @Grab

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

associé Chaque fois que ce code est exécuté, j'ai

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) 

Ligne 184 étant celui de signInForm.getInputByName("next").click() où je suppose que l'erreur se produit. Peut-être cela a-t-il quelque chose à voir avec le choix d'implémentation SSL de goodreads, qui est

Étant donné que je peux me connecter correctement à ce site en utilisant Opera, Firefox, comment cette erreur apparaît-elle? et, plus important, que puis-je faire pour le réparer?

Additionnaly destination formulaire de notification est url https://www.goodreads.com/user/sign_in

Ouverture cette URL permet d'accéder à une page qui indique Opera comme TLS v1.0 AES 256 bits (1024 bits DHE_RSA/SHA)

Répondre

Questions connexes