0

I have url:

https://login.live.com/login.srf?wa=wsignin1.0&wtrealm=http%3a%2f%2fcorp.sts.microsoft.com&wctx=7b4cd04b-7dc2-4880-9f77-20c8c6ef64c4&wct=2013-03-11T06%3a54%3a42Z&whr=uri%3aWindowsLiveID.

I want to get htmlcotent of this webpage as string. My Code Looks like this.

WebClient wc = new WebClient();
string html =  wc.DownloadString("url");

When I examine the content in html string I see an error message:

Microsoft account requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked. To find out whether your browser supports JavaScript, or to allow scripts, see the browser's online help.

4

1 に答える 1

0

リクエスト ヘッダーを既知のブラウザに設定するUser-Agentと、Web サイトをだまして JavaScript をサポートしていると思わせることができます。

using (WebClient wc = new WebClient())
{
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22";
    string html =  wc.DownloadString("https://www.microsoft.com/en-/itacademy/members/default.aspx");
}

明らかに、サイトがいくつかの JavaScript タスクを実行する場合、それらは実行されず、WebClient はそれをサポートしていないため、それらに依存することはできません。

一方、Live ID に対して認証しようとしている場合は、その目的で OAuth を使用することを強くお勧めします。アプリケーションを証明書利用者として登録した後、このタイプのdocumentation認証を Live ID と統合する方法について説明します。

于 2013-03-11T07:21:36.360 に答える