1

プログラムで (Java を使用して) サイトにログインしたいと考えています。

(すでにユーザー名とパスワードを持っています)

たとえば、次のサイトを見てください: http://mediaforest-argentina.com/Membership/login.aspx?ReturnUrl=%2fGuests%2fRealtimeCharts.aspx

コードは次のとおりです。

...
HttpPost httpost = new HttpPost("The url that I need");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("IDToken1", "username"));
nvps.add(new BasicNameValuePair("IDToken2", "password"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
...

投稿リクエストの URL が必要です。どうすれば入手できますか?

4

2 に答える 2

2

Web サイトのソース コード、特にログイン フォームを調べて、どのようなデータが送信されているかを調べる必要があります。見る<form action="url_here" ...>

サンプル サイトでは、この URL はhttp://mediaforest-argentina.com/Membership/login.aspx?ReturnUrl=%2fGuests%2fRealtimeCharts.aspxですが、多くの場合、この例も例外ではなく、非表示のフォームがあることに注意してください。リクエストで送信する必要があるデータを含む要素。ざっと見てみると、多くの非表示のフォーム要素が明らかになります。

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTEyOTA2MDE5Ng9kFgJmD2QWAgIBD2QWAgIBD2QWAgIED2QWAgIBD2QWAmYPZBYCAg8PEA8WAh4HQ2hlY2tlZGhkZGRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYCBStjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJExvZ2luMSRSZW1lbWJlck1lBTJjdGwwMCRDb250ZW50UGxhY2VIb2xkZXIxJExvZ2luMSRBZ3JlZVRlcm1zT2ZVc2FnZQ==">
<input type="hidden" name="__PREVIOUSPAGE" id="__PREVIOUSPAGE" value="HJPLOnv9G-WzfNEMvvC92zihg9ivnWKp_vC_6zv73e3_sOtSB4IhbCtPk3C75el4TZvgalSI2OHCaVGPxWZzWwUGXqo1">
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWCQKP7Ne4AgK/1YTzDQLu8I/0DgKh+7V7Ao+F8Z4OAsz3upgFAueno7sBAs/QlOcIAozNmZwP">

他にもたくさんあるかもしれませんが、私は長い間探していませんでした。また、フォームを投稿する前に、JavaScript によって値が微調整される可能性があることにも注意してください。そのため、ブラウザーの開発ツール ( Firefox の場合はFirebug 、Chrome の場合はChrome 開発ツールなど) を使用して完全な要求をキャプチャし、それに基づいてログイン スクリプトを作成することをお勧めします。

これは非常に複雑に聞こえるかもしれませんが、その理由は、サイトの所有者が公開 API を提供しない限り、おそらくこの方法でログインすることを望まないからです。

于 2012-08-01T19:56:49.547 に答える
0

firebug や chrome 開発者ツールなどを使用すると、ログイン時に送信されたリクエストを確認できます。実際に投稿した URL は次のとおりです: http://mediaforest-argentina.com/Membership/login.aspx?ReturnUrl=%2fGuests%2fRealtimeCharts.aspx

于 2012-08-01T20:03:39.183 に答える