将WebResponse保存为txt
我正在寻找一种与WebResponse中的Request.SaveAs等效的方法。 但我找不到它。
我想在txt文件中存储webresponse的标题和正文。
你知道任何技术来实现它吗?
没有内置方法,但您可以简单地使用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