Используем класс HttpClient:

public async static Task<string> GetHttpResponse(string url)
{
	HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url);
	request.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");

	HttpClient client = new HttpClient();
	HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

	if (response.StatusCode == HttpStatusCode.OK)
		return await response.Content.ReadAsStringAsync();
	else
		throw new Exception("Error connecting to " + url +" ! Status: " + response.StatusCode);
}

Или еще более кратко:

public async static Task<string> GetHttpResponse(string url)
{
	HttpClient client = new HttpClient();
	return await client.GetStringAsync(url);
}

Если в запросе происходит ошибка, то GetStringAsync бросит исключение HttpResponseException.

Источники

Теги: c#, .net, сниппет