begin process at 2008 07 25 18:20:29
1 216 413 membres
372 nouveaux aujourd'hui
14 181 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRER LE CONTENU D'UNE PAGE WEB


Information sur la source

Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous : internet, webrequest, webresponse Niveau : Initié Date de création : 18/09/2003 Date de mise à jour : 18/09/2003 00:29:32 Vu : 14 355

Note :
8,5 / 10 - par 6 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • 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();
  • }
  • }
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"
  • signaler à un administrateur
    Commentaire de stailer le 18/09/2003 12:42:44

    Salut,

    Merci pour ce code. Je débute actuellement en C# et je voudrais faire un petit logiciel de newsletter avec une base mysql. Donc merci pour cette fonction qui me sera forcément très utile.

    A+,

    Stailer

  • signaler à un administrateur
    Commentaire de 666Ange le 28/11/2003 03:34:39

    Mon pauvre c'est pas avec ca que tu pourra réaliser ton prog qui interragit avec une base mysql. Si tu est intéressé (et comme ce post date de y a longtemps ca m'etonnerais que tu y montre un interet lol)  et que tu ne trouve pas ailleurs je posterai une dll que j'ai trouvé et modifié en intégrant des composants qui contiennt des classes pour mysql du genre :

    mySQLConnection1.ConnectionString = "Location=xxxx;User ID=xx;Password=xx;Data Source =xx";
    mySQLConnection1.Open();

    ...

    mySQLCommand1.CommandText = "SELECT ed_libelle, id_editeur FROM editeurs ORDER BY ed_libelle ASC" ;


    Par contre ce code est intéressant effectivement c'est ce que je cherchais ! merci !

  • signaler à un administrateur
    Commentaire de stailer le 28/11/2003 11:01:04

    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  : )

  • signaler à un administrateur
    Commentaire de arhacknide le 11/02/2006 22:52:11

    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.

  • signaler à un administrateur
    Commentaire de porgy le 15/04/2007 15:00:25

    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

  • signaler à un administrateur
    Commentaire de bdegoy le 08/05/2007 09:38:03

    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?

  • signaler à un administrateur
    Commentaire de sangoan le 25/07/2007 18:24:11

    // 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

Ajouter un commentaire

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS