Réponses:
Vous pouvez télécharger des fichiers avec la 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");
}
fondamentalement:
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);
Le plus récent, le plus récent, à jour réponse
Ce message est vraiment vieux (il est de 7 ans quand j'ai répondu), donc pas l' une des autres réponses a utilisé la nouvelle et recommandée, qui est HttpClientclasse.
HttpClientest considérée comme la nouvelle API et devrait remplacer les anciennes ( WebClientet 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;
}
}
pour plus d'informations sur l'utilisation de la HttpClientclasse (en particulier dans les cas asynchrones), vous pouvez vous référer à cette question
REMARQUE 1: si vous souhaitez utiliser 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();
}
}
REMARQUE 2: si vous utilisez les fonctionnalités 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();
Vous pouvez l'obtenir avec:
var html = new System.Net.WebClient().DownloadString(siteUrl)
Disposele WebClient?
La méthode @cms est la plus récente, suggérée sur le site Web de MS, mais j'avais un problème difficile à résoudre, avec les deux méthodes affichées ici, maintenant je poste la solution pour tous!
problème:
si vous utilisez une URL comme celle-ci: www.somesite.it/?p=1500dans certains cas, vous obtenez une erreur de serveur interne (500), bien que cela www.somesite.it/?p=1500fonctionne parfaitement dans le navigateur Web .
solution: vous devez déplacer les paramètres, le code de travail est:
using System.Net;
//...
using (WebClient client = new WebClient ())
{
client.QueryString.Add("p", "1500"); //add parameters
string htmlCode = client.DownloadString("www.somesite.it");
//...
}