2017-08-01 14 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

しました。同じ結果。このようなWebサイトのように動作します。ログインするには、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

関連する問題