IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Comment capturer le contenu d'une page web avec asp.net et c#


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Points : 70
    Points
    70
    Par défaut Comment capturer le contenu d'une page web avec asp.net et c#
    Salut tout le monde , j'ai déja travaillé avec une fonction pareil sou php , mais cette fois ci j'ai des difficultés a trouver une fonction qui me retourne le text d'une reponse html ???? alors SvP si vous avez des connaissances apropos de ce sujet n'hésitez pas ... je suis bloqué depuis 2 ou 3 jours sur ce point ...

    merci d'avance ...

  2. #2
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Salut

    Pas compris ce que tu voulais faire...

    Ton code fait un GET et tu veux recupérer le resultat?? Ou tu as le resultat mais tu n'arrives pas a le parse?
    Ou tu cherches comment faire le GET?

    Plus d'explication avec un peu de code permettrait de mieux comprendre

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par bizet Voir le message
    Salut

    Pas compris ce que tu voulais faire...

    Ton code fait un GET et tu veux recupérer le resultat?? Ou tu as le resultat mais tu n'arrives pas a le parse?
    Ou tu cherches comment faire le GET?

    Plus d'explication avec un peu de code permettrait de mieux comprendre

    merci bien pour votre assitance , bon voila je m'explique , je voulais juste avoir le resultat (texte) d'une page web (URL) sa vaut dire avoir le contenu html ...
    bon apres une recherche j ai pu traduire un code VB en C#
    voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
                WebResponse MaReponse;
     
                WebRequest MaRequest = WebRequest.Create("http://www.google.com"); //pour google sa marche bien pour ma page qui est en local dans mon serveur j'arrive pas a faire sa ..
                MaReponse = MaRequest.GetResponse();
                Stream streamReceive = MaReponse.GetResponseStream();
                System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
                System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);
                objSmtpMail.Body = streamRead.ReadToEnd().ToString();//c'est une classe pour envoie de mail ...
    bon comme montionné en commentaire pour le cas de google sa marche bien mais le problem c est que je veux retourner une page en local la page Default.aspx par exemple peut tu me guider afin d'avoir le BaseURL ???
    je connaissais sa avec le framework Zend pour PHP mais ici vraiment je suis perdu

    merci d'avance ...

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    "ça" et pas "sa"

    ensuite, il y a pas de raison que ca ne marche pas en local si c'est l'URL est bonne. tu donnes bien une url complete à ton objet Webrequest?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    "ça" et pas "sa"

    ensuite, il y a pas de raison que ca ne marche pas en local si c'est l'URL est bonne. tu donnes bien une url complete à ton objet Webrequest?
    merci bien pour ta réfléxion , sauf que je suis nouveau a ASP.NET et mon problem est que a chaque lancement du serveur le Num de port change ... donc c est sa mon problem donc je veux que sa soit automatique ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     WebMsgBox .Show (Server.UrlPathEncode("test"));
                WebResponse MaReponse;
     
                WebRequest MaRequest = WebRequest.Create(http://localhost:2225/GestionCong%C3%A9/); 
                MaReponse = MaRequest.GetResponse();
                Stream streamReceive = MaReponse.GetResponseStream();
                System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
                System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);
                objSmtpMail.Body = streamRead.ReadToEnd().ToString();// " Vous avez une demande de conge de la part de votre equipier  : " + Session["nom"].ToString() + "  " + Session["prenom"].ToString() + "veuillez consulter votre<br> boite de reception ";
    je sais bien que sa marchera bien de cette methode , mais je veux pas de surprise lors du déploiment de mon application sur un autre serveur ... ou lors d'une presentation sur un autre pc ?...

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    alors non, le numero de port ne doit pas changer.
    tout d'abord, on parle de mode developpement, donc oui VS 2005 avec Cassini trouve un port mais logiquement, il essaie de toujours utiliser le même. sinon, dans Visual, tu peux le preciser et le fixer dans les propriétés de ton projet, onglet Web > specific port

    Ensuite, quand ce sera en production, tu devras définir un port donc le port ne changera jamais. D'ailleurs, quand tu feras un demo depuis un autre pc, il faudra le deployer sur ton pc dans IIS et pas sur Cassini (le web serv de Visual)

  7. #7
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Citation Envoyé par mehdi_scofield Voir le message
    mon problem est que a chaque lancement du serveur le Num de port change ... donc c est sa mon problem donc je veux que sa soit automatique ...
    Pour que ce soit automatique, il faut que tu connaisses le port de ton serveur local.
    Il n'y a pas moyen de le récupérer quelque part (fichier de config,...) ou de le fixer une bonne fois pour toute??

  8. #8
    Membre confirmé
    Avatar de Dung-Tri
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 109
    Points : 597
    Points
    597
    Par défaut Solution
    Au pire tu peux essayé de lancer ta requete WebRequest sur le serveur en question et intercepté l'url en cours via l'objet Request qui contient une propriété Url

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
            string urlEnCours = Request.Url.ToString();
     
    WebRequest MaRequest = WebRequest.Create(urlEnCours); 
                MaReponse = MaRequest.GetResponse();
                Stream streamReceive = MaReponse.GetResponseStream();
                System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
                System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);
                objSmtpMail.Body = streamRead.ReadToEnd().ToString();// " Vous avez une demande de conge de la part de votre equipier  : " + Session["nom"].ToString() + "  " + Session["prenom"].ToString() + "veuillez consulter votre<br> boite de reception ";
     
        }
    }
    Après je sais pas si ca répond à ton besoin

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Dung-Tri Voir le message
    Au pire tu peux essayé de lancer ta requete WebRequest sur le serveur en question et intercepté l'url en cours via l'objet Request qui contient une propriété Url

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
            string urlEnCours = Request.Url.ToString();
     
    WebRequest MaRequest = WebRequest.Create(urlEnCours); 
                MaReponse = MaRequest.GetResponse();
                Stream streamReceive = MaReponse.GetResponseStream();
                System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
                System.IO.StreamReader streamRead = new System.IO.StreamReader(streamReceive, encoding);
                objSmtpMail.Body = streamRead.ReadToEnd().ToString();// " Vous avez une demande de conge de la part de votre equipier  : " + Session["nom"].ToString() + "  " + Session["prenom"].ToString() + "veuillez consulter votre<br> boite de reception ";
     
        }
    }
    Après je sais pas si ca répond à ton besoin


    Merci bien pour votre réponse .

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/01/2014, 10h14
  2. [XL-2010] VBA : comment récupérer valeur contenue dans une page web?
    Par pegase33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/01/2012, 01h39
  3. acceder au contenu d'une page web avec VB6
    Par maryo dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 12/10/2009, 12h09
  4. Réponses: 2
    Dernier message: 19/12/2005, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo