【发布时间】:2010-10-21 17:34:39
【问题描述】:
我正在尝试编写一个将网页(及其图像)保存为 html 页面的函数。 我正在使用 HttpWebRequest 来请求网页的内容。 我的函数看起来像
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 创建一个新会话,因为我网页上的许多图像都是动态生成的并且是临时存储的。所以只有当我在同一个会话中发出请求时才能获取这些图像。
【问题讨论】: