I get this warning on response.GetResponseStream()
How should I handle this?
// Get response
using (var response = request.GetResponse() as Ht
Try shortening your code and wrapping disposable resources in using
statements:
using (var response = request.GetResponse())
using (var reader = new StreamReader(response.GetResponseStream()))
{
return reader.ReadToEnd();
}
or even further:
using (var client = new WebClient())
{
return client.DownloadString("http://foo.bar.com/")
}
var reader = new StreamReader(response.GetResponseStream());
I suspect StreamReader
constructor's parameter has a notnull
attribute. Try the following:
var stream = response.GetResponseStream();
if (stream == null)
// throw an exception
var reader = new StreamReader(stream);
If the response
object is of type HttpWebRequest
, then response will always be of type HttpWebResponse
. If it's not, then it never will be.
Either you're testing this at the wrong place (why call .GetResponse()
if you could be passed another class derived by WebRequest
just to throw away the results) or testing unnecessary with no effect.
I'm guessing resharper is worrying about that, despite the test for null below it. I'd go for either a direct cast:
using (var response = (HttpWebResponse)request.GetResponse())
using(var reader = new StreamReader(response.GetResponseStream()))
return reader.ReadToEnd();
Or, considering you aren't using any members of HttpWebResponse
that isn't derived from WebResponse
, no cast at all:
using (var response = (HttpWebResponse)request.GetResponse())
using(var reader = new StreamReader(response.GetResponseStream()))
return reader.ReadToEnd();