Respuestas:
Puede descargar archivos con la clase 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");
}
básicamente:
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);
La respuesta más reciente, más reciente y actualizada
Esta publicación es muy antigua (tiene 7 años cuando la respondí), por lo que ninguna de las otras respuestas usó la forma nueva y recomendada, que es la HttpClientclase.
HttpClientse considera la nueva API y debería reemplazar las antiguas ( WebClienty 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 obtener más información sobre cómo usar la HttpClientclase (especialmente en casos asincrónicos), puede consultar esta pregunta
Puedes conseguirlo con:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Disposeel WebClient?
@cms way es el más reciente, sugerido en el sitio web de MS, pero tuve un problema difícil de resolver, con ambos métodos publicados aquí, ¡ahora publico la solución para todos!
problema:
si usa una url como esta: www.somesite.it/?p=1500en algún caso, obtiene un error interno del servidor (500), aunque en el navegador web esto www.somesite.it/?p=1500funciona perfectamente.
solución: tienes que mover los parámetros, el código de trabajo es:
using System.Net;
//...
using (WebClient client = new WebClient ())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}