WebResponse の Request.SaveAs に相当するメソッドを探しています。しかし、私はそれを見つけることができません。
Web 応答のヘッダーと本文を 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