Respostas:
Você pode baixar arquivos com a classe 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");
}
basicamente:
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);
A resposta mais recente, mais recente, atualizada
Este post é muito antigo (tinha 7 anos quando respondi), então nenhuma das outras respostas usou a forma nova e recomendada, que é a HttpClient
aula.
HttpClient
é considerada a nova API e deve substituir as antigas ( WebClient
e 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;
}
}
para obter mais informações sobre como usar a HttpClient
classe (especialmente em casos assíncronos), você pode consultar esta pergunta
Você pode obtê-lo com:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Dispose
o WebClient
?
O modo @cms é o mais recente, sugerido no site da MS, mas tive um problema difícil de resolver, com os dois métodos postados aqui, agora posto a solução para todos!
problema:
se você usar uma url como esta: www.somesite.it/?p=1500
em alguns casos você obtém um erro interno do servidor (500), embora no navegador da web www.somesite.it/?p=1500
funcione perfeitamente.
solução: você tem que mover os parâmetros, o código de trabalho é:
using System.Net;
//...
using (WebClient client = new WebClient ())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}