6

我正在寻找一种等效于 WebResponse 中的 Request.SaveAs 的方法。但我找不到它。

我想将 webresponse 的标题和正文存储在 txt 文件中。

你知道实现它的任何技术吗?

4

2 回答 2

9

没有内置方法,但您可以简单地使用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());
        }
    }
}
于 2012-09-10T08:41:06.237 回答
1

WebClient 类有 ResponseHeaders 集合:

http://msdn.microsoft.com/en-us/library/system.net.webclient.responseheaders.aspx

于 2012-09-10T08:31:32.627 回答