現在、いくつかのコードをリファクタリングしており、次の機能が見つかりました。
public static StreamReader DoWebRequest(string url, string method)
{
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.Method = method;
req.Timeout = System.Threading.Timeout.Infinite;
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
return new StreamReader(resp.GetResponseStream());
}
以降
string result = Helper.DoWebRequest(ServerUrl, "GET").ReadToEnd();
私は多くのストリームを使用してきましたが、常にHttpWebResponse resp = req.GetResponse()
リーダーを使用ブロックに入れたり、ストリーミングしたりしています。しかし、この特定のケースではどうすればよいですか?上記のコードは大丈夫ですか、それとも StreamReader を新しい変数に割り当てて、ReadToEnd(); の呼び出し後に明示的に閉じる方が良いですか? (または using ブロック内) 次のように:
using(StreamReader sr = Helper.DoWebRequest(ServerUrl, "GET"))
{
string result = sr.ReadToEnd();
}
ありがとう