Ответы:
Вы можете скачивать файлы с помощью класса WebClient :
using System.Net;
using (WebClient client = new WebClient ()) // WebClient class inherits IDisposable
{
client.DownloadFile("http://yoursite.com/page.html", @"C:\localfile.html");
// Or you can get the file content without saving it
string htmlCode = client.DownloadString("http://yoursite.com/page.html");
}
в принципе:
using System.Net;
using System.Net.Http; // in LINQPad, also add a reference to System.Net.Http.dll
WebRequest req = HttpWebRequest.Create("http://google.com");
req.Method = "GET";
string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
{
source = reader.ReadToEnd();
}
Console.WriteLine(source);
Самый новый, самый последний, актуальный ответ
Этот пост действительно старый (ему 7 лет, когда я ответил на него), поэтому ни в одном из других ответов не использовался новый и рекомендуемый способ, которым является HttpClientкласс.
HttpClientсчитается новым API и должен заменить старые ( WebClientи WebRequest)
string url = "page url";
HttpClient client = new HttpClient();
using (HttpResponseMessage response = client.GetAsync(url).Result)
{
using (HttpContent content = response.Content)
{
string result = content.ReadAsStringAsync().Result;
}
}
для получения дополнительной информации о том, как использовать HttpClientкласс (особенно в случаях async), вы можете обратиться к этому вопросу
ПРИМЕЧАНИЕ 1. Если вы хотите использовать async / await
string url = "page url";
HttpClient client = new HttpClient();
using (HttpResponseMessage response = await client.GetAsync(url))
{
using (HttpContent content = response.Content)
{
string result = await content.ReadAsStringAsync();
}
}
ПРИМЕЧАНИЕ 2: Если вы используете функции C # 8
string url = "page url";
HttpClient client = new HttpClient();
using HttpResponseMessage response = await client.GetAsync(url);
using HttpContent content = response.Content;
string result = await content.ReadAsStringAsync();
Вы можете получить это с помощью:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Disposeто WebClient?
Способ @cms - более свежий, предложенный на веб-сайте MS, но у меня была трудная проблема, которую нужно было решить, оба метода опубликованы здесь, теперь я публикую решение для всех!
проблема:
если вы используете такой URL-адрес: www.somesite.it/?p=1500в некоторых случаях вы получаете внутреннюю ошибку сервера (500), хотя в веб-браузере это www.somesite.it/?p=1500отлично работает.
Решение: вам нужно переместить параметры, рабочий код:
using System.Net;
//...
using (WebClient client = new WebClient ())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}