2017-05-03 14 views
-1

私はUnirestをJavaで使用しており、リモートWebページにログインしようとしています。Java:ログイン時にjavascriptを使用するリモートWebサイトへのログイン後のリクエスト

Iサイトは、ヘッダにXMLHttpRequestを用いてPOSTを使用しているChromeデベロッパーツールとHTTP Traceで見ることができる。

POST [サイト] /Services/UserService.asmx/Authenticate
起源:[サイト]
X-デベロッパーツール・エミュレート・ネットワークの条件 - クライアントID:86825bab-dcb4-4bef-885e-5350c11fe43b
X-要求-付:XMLHttpRequestを
のUser-Agent:Mozillaの/ 5.0(Windows NTの10.0; Win64の、x64の)AppleWebKit/537.36(GeckoのようなKHTML)Chrome/57.0.2987.133 Safari/537.36
コンテンツタイプ:application/json;文字セットは= UTF-8
が受け入れ:/
リファラー:[サイト]
のAccept-エンコーディング:gzipでは、収縮、BR
のAccept-言語:DA-DK、DA; Q = 0.8を、EN-US; q = 0.6、en; q = 0.4
Cookie:ASP.NET_SessionId = xgea1elpr3dmrgbsotcghu5k; _ga = GA1.2.632065975.1472

私は、サイトのソースコードを検査した場合、私は彼らが送信ボタンのJavaScript .onClickを()を使用している見ることができます。ここで は、ユーザー名とパスワードを(それが.onClick(中だ))の処理javascriptの部分のコードスニップです:

... 
    var service = new Website.Services.UserService(); 
        service.Authenticate(email, password, rememberMe, referrer, 

function(result) { 

        if (!result.Authenticated) { 
         var message = result.Message || "Det var ikke muligt at logge ind med din e-mail og kode"; 

         button.closest("fieldset").find(".error-text").text(message).show(); 
         return; 
        } else { 
         // Redirect to my page 
         location.href = result.Url; 
        } 

       }, function() { 

        alert("Det var ikke muligt at få forbindelse til serveren, opdater siden og prøv igen"); 

       }, true); 
... 

私の質問があり、私は(Unirestで、Javascriptの上に「シミュレート」することができますかJavaで同様)ので、私はページにログインできますか? もしそうなら、どうですか?
「バイパス」する方法はありますか?

私はそれを解決する可能性のあるSeleniumとPhantomJSに慣れていますが、この場合、これらの方法は問題になりません。

答えて

0

解決策が見つかりました。もちろん、非常に単純で実用的な解決策でした。

Chromeデベロッパーツールで「ログを保存する」にチェックを入れて、実際の投稿データを上書きしたリダイレクト呼び出しを行う必要がありました。この後、私はポストデータを見ることができ、Unirestで複製することができました

関連する問題