来自一个WebRequest的GetResponse和GetRequestStream

时间:2014-08-20 06:17:37

标签: c#

我正在编写一个连接到网页的应用程序,并在该页面上下载一些内容。我得到了那部分工作。我的问题是该页面从一开始就没有显示所有内容。它加载页面的一部分,底部有一个按钮,您需要单击该按钮以显示更多内容。我知道该按钮会对服务器执行ajax调用以获取页面的其余部分。

我有两段代码。一个人按原样下载网页,另一个人进行ajax调用并获取页面的下一部分。

问题在于我不知道页面实际存在多长时间,而且我每次都需要按下按钮才能获得页面的下一位。

所以我的实际问题是:你如何制作WebRequest,获得响应并创建新请求?

PS:网址永远不会改变。无论您按下按钮多少次,它只会加载更多数据,保持URL相同。

// variable to store all HTML code
string EVERYTHING;

// Get the first bit of the page
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.webPageURL.com");
WebResponse response = request.GetResponse();
System.IO.Stream responseStream = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(responseStream);
EVERYTHING = reader.ReadToEnd();

// Press the button and get the second bit of the page
request = (HttpWebRequest)WebRequest.Create("http://www.webPageURL.com");
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
using (var stream = request.GetRequestStream())
{
    var buffer = Encoding.UTF8.GetBytes(@"/browse_ajax?action_continuation=1&continuation=CjgSGFVDQjBsaXQyZ2lOZmZsMWhpMWE0azZBZxocRWdaMmFXUmxiM01nQURBQ09BRmdBV29BZWdFeg%253D%253D");
    stream.Write(buffer, 0, buffer.Length);
}
response = (HttpWebResponse)request.GetResponse();
using (reader = new System.IO.StreamReader(response.GetResponseStream()))
{
    EVERYTHING += Environment.NewLine + reader.ReadToEnd();
}

0 个答案:

没有答案