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

Développement Web en Java Discussion :

Récupérer le code HTML d'une page web à l'aide d'un Socket


Sujet :

Développement Web en Java

  1. #1
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 702
    Points : 18 692
    Points
    18 692
    Par défaut Récupérer le code HTML d'une page web à l'aide d'un Socket
    Bonjour.
    J'aimerais en utilisant un socket récupérer le code source d'une page.
    Mais je ne trouve pas comment m'y prendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int port=80;
    String URL="www.google.fr";
    try
    {
    	InetAddress adresse = InetAddress.getByName(URL);
    	Socket CNX = new Socket(adresse,port);
    	CNX.close();
    }
    catch(Exception e)
    {
    	System.err.println(e);
    }
    Je passe par un proxy, mais je l'ai configuré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.getProperties().put("http.proxyHost", "adresse-du-proxy");
    System.getProperties().put("http.proxyPort", "port-du-proxy");
    Si vous avez une idée du problème, merci de me donner vos conseils.
    Au revoir.

    Edit :
    Donc je recherche la methode qui renvoit le code HTML d'une page, je crois que quelque part je dois mettre : GET /HTTP/1.0\r\n\n.

    J'ai changé le code, du coup il semble bien vide.
    Keith Flint 1969 - 2019

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 702
    Points : 18 692
    Points
    18 692
    Par défaut
    On ma montré comment le faire avec des Streams.

    Par contre la configuration du proxy ne semble pas être prise en compte par la socket...

    Quand je faisais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String url = "http://google.fr";
    		try 
    		{
    		  JEditorPane htmlPane = new JEditorP0ane(url);
    		  htmlPane.setEditable(false);
    		  fen.add(new JScrollPane(htmlPane));
    		}
    		catch(IOException ioe) {
    		  System.err.println("Error displaying " + url);
    		}
    Il ni avait pas de problème, mais la socket est timeout à chaque fois...

    Sans configurer le proxy, quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InetAddress adresse = InetAddress.getByName("www.google.fr");
    J'obtiens bien l'adresse de Google.
    C'est étrange je trouve.

    =================
    Edit : J'avais mal compris le concept de Socket de requête Get.
    En fat il faut établir un socket avec le serveur et une fois connecté, envoyé des requêtes de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "GET "+URL+" HTTP/1.0\r\n\n"
    Keith Flint 1969 - 2019

  3. #3
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 702
    Points : 18 692
    Points
    18 692
    Par défaut
    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
    18
    19
    20
    21
    22
    23
    		try {
    		    String hostname = "www.google.fr";
    		    int port = 80;
    		    InetAddress addr = InetAddress.getByName(hostname);
    		    Socket socket = new Socket(hostname, port);
     
    		    BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
    		    wr.write("GET "+hostname+" HTTP/1.0 \r\n");
    		    wr.write("Accept : text/html \r\n");
    		    wr.write("\r\n");
    		    wr.flush();
     
    		    BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    		    String line;
    		    int test=0;
    		    while ((line = rd.readLine()) != null) {
     
    				}
    		    }
    		    wr.close();
    		    rd.close();
    		} catch (Exception e) {
    		}
    Par contre j'arrive pas à afficher correctement du HTML dans une JScrollPane.
    Avec setText c'est pas terrible, avec setPage ça ne fonctionne pas...
    Keith Flint 1969 - 2019

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/07/2010, 14h36
  2. Récupérer le code HTML d'une page web
    Par sorcer1 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 24/09/2009, 17h54
  3. Récupération du code HTML d'une page Web
    Par jgavard dans le forum Eclipse Java
    Réponses: 19
    Dernier message: 06/11/2006, 16h54
  4. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16
  5. Récupérer le code HTML d'une page avec Delphi 7
    Par PsyKroPack dans le forum Web & réseau
    Réponses: 5
    Dernier message: 06/02/2003, 21h56

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