我正在寻找一种等效于 WebResponse 中的 Request.SaveAs 的方法。但我找不到它。
我想将 webresponse 的标题和正文存储在 txt 文件中。
你知道实现它的任何技术吗?
没有内置方法,但您可以简单地使用GetResponseStream方法获取响应流并将其保存到文件中。
例子:
WebRequest myRequest = WebRequest.Create("http://www.example.com");
using (WebResponse myResponse = myRequest.GetResponse())
using (StreamReader reader = new StreamReader(myResponse.GetResponseStream()))
{
// use whatever method you want to save the data to the file...
File.AppendAllText(filePath, myResponse.Headers.ToString());
File.AppendAllText(filePath, reader.ReadToEnd());
}
尽管如此,您可以将其包装到扩展方法中
WebRequest myRequest = WebRequest.Create("http://www.example.com");
using (WebResponse myResponse = myRequest.GetResponse())
{
myResponse.SaveAs(...)
}
...
public static class WebResponseExtensions
{
public static void SaveAs(this WebResponse response, string filePath)
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
File.AppendAllText(filePath, myResponse.Headers.ToString());
File.AppendAllText(filePath, reader.ReadToEnd());
}
}
}
WebClient 类有 ResponseHeaders 集合:
http://msdn.microsoft.com/en-us/library/system.net.webclient.responseheaders.aspx