2017-08-01 124 views
0

在尝试了不同的教程并阅读大量帖子后,我仍然无法使用jsoup登录到网站。使用java jsoup登录不起作用

这是我的代码

 Connection.Response response = Jsoup.connect("https://www.ivolatility.com/login.j") 
       .method(Connection.Method.GET) 
       .execute(); 

     response = Jsoup.connect("https://www.ivolatility.com/login.j") 
       .data("username", username) 
       .data("password", password) 
       .cookies(response.cookies()) 
       .method(Connection.Method.POST) 
       .execute(); 

     Document homePage = Jsoup.connect("http://www.ivolatility.com/options.j") 
       .cookies(response.cookies()) 
       .get(); 
+0

不应该在上次请求中使用“https”吗?你使用了'http:// www.ivolatility.com/options.j',我首先在这里查看'https' URL。 –

+0

我做到了。同样的结果。似乎这个网站是这样工作的。要登录,他们使用https,登录后它会消失。 – clex

回答

1

检查post要求,即浏览器发送(使用浏览器的开发者工具) - 它向你不要送一些额外的参数。将它们添加到您的reauest:

response = Jsoup.connect("https://www.ivolatility.com/login.j") 
      .data("username", username)     
      .data("ref_url", "") 
      .data("service_name", "") 
      .data("step", "1") 
      .data("login__is__sent", "1") 
      .data("password", password) 
      .cookies(response.cookies()) 
      .method(Connection.Method.POST) 
      .execute(); 

这也将是明智的添加user agent串浏览器请求的,因为你的程序可能会派自己的字符串,导致来自浏览器的总不同的反应。

+0

这是解决方案。谢谢。 – clex

+0

很高兴为您提供帮助。如果我的答案解决了您的问题,您可以将其标记为已接受。 – TDG