Télécharger un fichier ou une page HTML avec C# GET et des cookies

Publié le par Lanfeust

Comment downloader en C# une page html ou un fichier

J'ai cherché pendant des heures, pour finalement trouver une classe compliquée qui marchait, mais qui gérait mal les liens... par exemple http://fbiot.free.fr ne pouvait pas être downloadé par cette classe...
Puis, presque par hasard, j'ai trouvé un truc tout simple qui fait partie du framework : WebClient

using System.Net;
...
WebClient oClient=new WebClient();
oClient.DownloadString("http://URL");

On peut aussi passer des paramètres get

oClient.QueryString.Add("nom","valeur");

2 lignes, simples efficace.

public class WebClientExtended : WebClient
{
private CookieContainer myContainer;
private HttpWebRequest myRequest;
private string myMethod;

public string Method
{
get { return myMethod; }
set { myMethod = value; }
}

public CookieContainer Cookies
{
get
{
if (myContainer == null)
{
myContainer = new CookieContainer();
}
return myContainer;
}
set
{
myContainer = value;
}
}

protected override WebRequest GetWebRequest(Uri address)
{
myRequest = (HttpWebRequest)base.GetWebRequest(address);
myRequest.Method = this.Method;
myRequest.CookieContainer = Cookies;
return myRequest;
}

protected override WebResponse GetWebResponse(WebRequest request)
{
return myRequest.GetResponse();
}

protected override WebResponse GetWebResponse(WebRequest request, IAsyncResult result)
{
return myRequest.EndGetResponse(result);
}
}
Publicité

Publié dans C

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article