0

我有网址:

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.

我想把这个网页的 htmlcotent 作为字符串。我的代码看起来像这样。

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

当我检查html字符串中的内容时,我看到一条错误消息:

Microsoft 帐户需要 JavaScript 才能登录。此 Web 浏览器不支持 JavaScript,或者脚本被阻止。要了解您的浏览器是否支持 JavaScript 或允许使用脚本,请参阅浏览器的在线帮助。

4

1 回答 1

0

您可以将User-Agent请求标头设置为某些已知浏览器,这会诱使网站认为它支持 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 回答