将WebResponse保存为txt

Alb*_*eón 5 c# asp.net

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

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

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

slo*_*oth 8

没有内置方法,但您可以简单地使用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());
}
Run Code Online (Sandbox Code Playgroud)

尽管如此,您可以将其包装到扩展方法中

WebRequest myRequest = WebRequest.Create("http://www.example.com");
using (WebResponse myResponse = myRequest.GetResponse())
{
    myResponse.SaveAs(...)
}
Run Code Online (Sandbox Code Playgroud)

...

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());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)