我有网址:
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,还是允许 脚本,请参阅浏览器的在线帮助。
答案 0 :(得分: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集成。