C# how to properly make a http web GET request
EDIT 23/11/17
Updated to throw out examples using async for both GET requests as well as POST
GET
public string Get(string uri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; using(HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using(Stream stream = response.GetResponseStream()) using(StreamReader reader = new StreamReader(stream)) { return reader.ReadToEnd(); } }
GET async
public async Task<string> GetAsync(string uri) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; using(HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync()) using(Stream stream = response.GetResponseStream()) using(StreamReader reader = new StreamReader(stream)) { return await reader.ReadToEndAsync(); } }