ventas - ¿Cómo puedo descargar código fuente HTML en C#
sistema de ventas en c# codigo fuente (5)
@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=1500
en algún caso se obtiene un error interno del servidor (500), aunque en el navegador web este sitio www.somesite.it/?p=1500
funciona perfectamente. .
solución: tienes que salir de los parámetros (sí es fácil), 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");
//...
}
¿Cómo puedo obtener la fuente HTML dada una dirección web en c #?
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");
}
Puedes obtenerlo con:
var html = new System.Net.WebClient().DownloadString(siteUrl)
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);
Esta publicación es realmente antigua (tiene 7 años cuando la respondo), por lo que ninguna de las otras soluciones utilizó la nueva y recomendada, que es la clase HttpClient
.
HttpClient
se considera una nueva API y debería reemplazar a la antigua WebClient
y WebRequest
string url = "page url";
using (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 acerca de cómo usar la clase HttpClient
(especialmente en casos asíncronos), puede remitir esta pregunta