16
我想写一个函数,它将网页(及其图像)保存为html页面。 我使用HttpWebRequest来请求网页内容。 我的功能看起来像在同一会话中的多个WebRequest
void SaveUrl(string sourceURL, string savepath)
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(sourceURL);
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader responseReader = new StreamReader(response.GetResponseStream());
string sResponseHTML = responseReader.ReadToEnd();
using (StreamWriter sw = new StreamWriter(savepath, false))
{
sw.Write(sResponseHTML);
}
string[] ImageUrl = GetImgLinks(sResponseHTML);
foreach (string imagelink in ImageUrl)
{
HttpWebRequest imgRequest = (HttpWebRequest)WebRequest.Create(imagelink);
HttpWebResponse imgresponse = (HttpWebResponse)imgRequest.GetResponse();
//Code to save image
}
}
我在这里的问题是,我想在同一个会话中的所有的WebRequest和不希望创建与每个imgRequest一个新的会话,因为许多在我的网页图像的动态生成并暂时存储。所以如果我在同一个会话中发出请求,这些图像只能被提取。