<p>What's the best way to do it in .NET?
I always forget what I need to <code>Dispose()</code> (or wrap with <code>using</code>).</p>

<p>EDIT: after a long time using <code>WebRequest</code>, I found out about customizing <code>WebClient</code>. Much better.</p>

Here's what I use, it seems to work, but I don't know if it's the best way:
```
```
public string GetRequest(Uri uri, int timeoutMilliseconds)
{
    var request = System.Net.WebRequest.Create(uri);
    request.Timeout = timeoutMilliseconds;
    using (var response = request.GetResponse())
    using (var stream = response.GetResponseStream())
    using (var reader = new System.IO.StreamReader(stream))
    {
        return reader.ReadToEnd();
    }
}
```
```