HttpWebResponse只返回页面的一个元素

时间:2014-04-28 06:29:20

标签: c# html asp.net httpwebrequest httpwebresponse

你好我做了一个简单的httpwebrequest然后我读了(StreamReader)响应,只是想得到网站的html页面,但我只在浏览器中得到一个laber(页面的一个元素)一切都很好(我看到所有页面)当我尝试将Cookie设置为拒绝\禁用时我也在浏览器中获取此标签(页面中只有一个元素)并且所有内容都消失了。如果在我之后我得到了意见在浏览器中禁用cookie我得到相同的页面(如在代码中),这意味着我的HttpWebRequest有设置cookies =拒绝/禁用。

您可以转到https://www.bbvanetcash.com/local_kyop/KYOPSolicitarCredenciales.html并使用F12禁用Cookie,您将看到差异,此页面也会显示一个标签。

将我的代码播放给我的代码我需要在这里改变什么?

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.bbvanetcash.com/local_kyop/KYOPSolicitarCredenciales.html");

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream streamResponseLogin = myHttpWebResponse.GetResponseStream();
StreamReader streamReadLogin = new StreamReader(streamResponseLogin);
LoginInfo = streamReadLogin.ReadToEnd();

1 个答案:

答案 0 :(得分:1)

您的代码正在接收完整的网页内容,但无法接收动态内容。之所以发生这种情况,是因为您尝试访问的页面依赖于用于维护会话的Cookie以及用于加载动态内容和提供丰富用户体验的JavaScript(它使用jQuery)。

要成功接收整个页面,您的代码必须

  • 支持跨各种HttpRequestHttpResponse检索,存储和发送Cookie对象。
  • 能够执行JavaScript代码以加载页面的动态内容/标记

测试您的代码是否正在接收正确的值'访问网站Web Sniffer并将您的网址放在那里。

正如您可以在web-sniffer网站上尝试的那样,对于www.google.com,您获得的回复是重定向指令....这意味着,即使访问Google的主页,您的代码也是如此必须了解HTTP状态消息(302那里)。