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

Java Discussion :

Probleme simple de recuperation page web


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut Probleme simple de recuperation page web
    Bonjour ,

    simple probleme :

    lorsque je tape "http://data.alexa.com/*****" dans la barre URL de mon navigateur , alexa me renvoye un document XML .

    J'ai crée un petit programme Java pour qu'il recupere la page XML :
    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
     String adresse = "http://data.alexa.com/*****";
     
     
    			   Properties props = System.getProperties();
     
     
    		      //création de la connection
    		      URL url = new URL(adresse);
    		      URLConnection conn = url.openConnection();
    		      conn.setDoOutput(true);
     
    		      //envoi de la requête
    		      writer = new OutputStreamWriter(conn.getOutputStream());
    		    // writer.write(donnees);
    		      writer.flush();
     
    		      //lecture de la réponse
    		      reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    		      String ligne;
    		     //int i = 177 ;
    		      while ((ligne = reader.readLine()) != null ) System.out.println(ligne);
    mais ceci me renvoye uniquement
    <ALEXA VER="0.9" URL="404"/>


    avez vous une solution

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    je suis loin d'être expert, mais peut-être une piste à creuser:

    - la valeur 404 renvoyée correspon visiblement à une page introuvable.

    - la partie de ton URL à droite du caractère '?' correspond à des paramètres envoyés dans la requête HTTP. Elle ne doit donc pas faire partie de l'URL elle-même. En fait, tu as deux parties :
    * l'URL elle-même : 'http://data.alexa.com/data'
    * les 3 paramètres envoyés : 'cli' qui vaut '10' ; 'dat' qui vaut 'snbamz' ; 'url' qui vaut 'sastgroup.com'

    Peut-être que la méthode URLConnection::setRequestProperty est justement faite pour ça.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut
    Salut et merci pour ta reponse,

    Suivant tes conseils j'ai donc modifié mon code

    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
    24
    25
    26
    27
    28
    29
    30
    31
     
    			   String adresse = "http://data.alexa.com/***";
     
     
    			   Properties props = System.getProperties();
     
    		     //encodage des paramètres de la requête
     
    		       String donnees = URLEncoder.encode("cli", "UTF-8")+
    		                       "=" + URLEncoder.encode("10", "UTF-8");
    		      donnees += "&"+URLEncoder.encode("dat", "UTF-8")+
                  "=" + URLEncoder.encode("s", "UTF-8");
     
    		      donnees += "&"+URLEncoder.encode("url", "UTF-8")+
                  "="+URLEncoder.encode("www.test.fr", "UTF-8");
     
    		      //création de la connection
    		      URL url = new URL(adresse);
    		      URLConnection conn = url.openConnection();
    		      conn.setDoOutput(true);
     
    		      //envoi de la requête
    		      writer = new OutputStreamWriter(conn.getOutputStream());
    		     writer.write(donnees);
    		      writer.flush();
     
    		      //lecture de la réponse
    		      reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    		      String ligne;
    		     //int i = 177 ;
    		      while ((ligne = reader.readLine()) != null ) System.out.println(ligne);
    Mais l'erreur est tjs la meme . D'autre suggestions ?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    la partie de ton URL à droite du caractère '?' correspond à des paramètres envoyés dans la requête HTTP. Elle ne doit donc pas faire partie de l'URL elle-même.
    Non, justement c'est une requête en Get, et pas en Post. La requête est à rentrer en entier avec les paramètres.

    Voici le code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String adresse = "http://data.alexa.com/****";
    URL url = new URL( adresse );
    URLConnection conn = url.openConnection();
    BufferedReader reader = new BufferedReader( new InputStreamReader( conn.getInputStream() ) );
    String ligne = null;
     
    while( ( ligne = reader.readLine() ) != null ) { System.out.println( ligne ); }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. recuperer page web sur DD
    Par segnac dans le forum Web & réseau
    Réponses: 1
    Dernier message: 30/11/2009, 14h50
  2. probleme d'affichage des pages web !
    Par baderahmed dans le forum Langage
    Réponses: 3
    Dernier message: 23/05/2009, 18h07
  3. Réponses: 6
    Dernier message: 18/03/2008, 11h09
  4. Réponses: 15
    Dernier message: 15/11/2005, 17h33

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