Récupérer le contenu d'une page web

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 575 fois - Téléchargée 33 fois

Contenu du snippet

Voici un extrait d'un webservice que j'ai réalisé il y a peu de temps. Cette fonction renvoi un string contenant le contenu HTML d'une page web située sur un serveur distant.

Source / Exemple :


public string PrincipalFrenchChannels()
{
	Uri uri = new Uri("http://www.programme-tv.net/");

	// crée un objet de requête avec l'URI spécifié
	WebRequest request = WebRequest.Create(uri);

	// envoi la requête créee au serveur
	WebResponse response = request.GetResponse();

	// objet de lecture nous permettant de réceptionner le contenu
	// de la réponse du serveur
	StreamReader sr = null;

	try
	{
		// response.GetResponseStream() renvoi un objet
		// de type Stream identifiant le flux de données
		// entre le client (ce programme) et le serveur
		sr = new StreamReader(response.GetResponseStream());
		// lit le flux jusqu'à sa fin
		// (fermeture de la connexion automatique)
		return sr.ReadToEnd();
	}
	catch
	{
		return null;
	}
	finally
	{
		// dans le cas d'une execution sans erreur
		// on prends soin de fermer l'objet de lecture
		// cela facilite le travail du CLR
		if (sr != null)
			sr.Close();
	}
}

Conclusion :


La classe Uri se trouve dans le namespace "System"
Les classes WebRequest et WebResponse dans "System.Net"
La classe StreamReader dans "System.IO"

A voir également

Ajouter un commentaire

Commentaires

cs_sangoan
Messages postés
2
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
28 juin 2005
-
// dans le cas d'une execution sans erreur
// on prends soin de fermer l'objet de lecture
// cela facilite le travail du CLR
if (sr != null)
sr.Close();



Comment tu veut fermer le CLR si tu as deja fait return avant tu n'arrivera jamais a cette partie du code
bdegoy
Messages postés
1
Date d'inscription
lundi 24 juillet 2006
Statut
Membre
Dernière intervention
8 mai 2007
-
Merci beaucoup pour cet excellent code. Je l'utilise pour appeler du code .php. Le code est bien interprété, alors que j'avais essayé avec serveur.execute("moncode.php") qui retournait le contenu du fichier sans qu'il ait été interprété par php.

Une question tout de même: le type de la fonction est string. Donc, le résultat est retourné avec <string> ... </string> autour. Il n'y a pas moyen de retourner le résultat sans rien autour? Comment déclarer la fonction du webservice pour cela?
porgy
Messages postés
14
Date d'inscription
jeudi 12 octobre 2000
Statut
Membre
Dernière intervention
29 janvier 2017
-
Bonjour ton code m'intéresse mais il utilise une url, or je souhaiterais stocker le contenu html de ma page une fois qu'elle a été générée. En fait j'utilise une sorte de signature électronique et je souhaiterais enregistrer dans ma base, le code HTML de ce qui a été signé en vue de pouvoir le relire avec un explorer web en cas de probleme.

Si tu as une idée je suis preneur.

Merci
arhacknide
Messages postés
8
Date d'inscription
samedi 11 février 2006
Statut
Membre
Dernière intervention
12 février 2006
-
Bonjour,
Je cherche une fonction permettant l'enregistrement d'une page Web, je me sert actuellement de Visual Studio C# 2005 Express. Je trouve ce code ci-dessus et je n'arrive pas à le faire fonctionner avec mon programme. Ce code répond t-il bien à ma demande concernant l'enregistrement total (avec images...) d'une page web, si oui merci d'un peu d'aide pour son application sinon merci de me conseiller/guider... pour ma demande, Merci bcp.
cs_stailer
Messages postés
511
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
13 mai 2009
1 -
Salut,

Effectivement ce code date et c'est pour ca que j'ai terminé mon logiciel de Newsletter.

En fait, tu n'as pas compris ce que j'ai dit, j'avoue que c'est confus. Je ne voulais pas cette source pour me lier à la base de données (chose que je savais déjà faire en csharp avec la dll ByteFX) mais pour récupérer le contenu HTML d'une page (ce qui est le cas) et l'envoyer ç une sélection de clients contenus dans une base de données.

Vala. Donc te fais pas de souci pour moi, tout va bien : )

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.