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

Format d'échange (XML, JSON...) Java Discussion :

Recupération de données XML depuis une URL


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut Recupération de données XML depuis une URL
    Bonjour!

    Je dois faire un projet en java, permettant de traiter des données au format RSS, que je dois récuperer à partir d'une URL (a chaque fois que je lancerais l'application, celle-ci traitera environ 500 URL).

    Et pour chaque URL, je souhaiterais créer un fichier XML contenant les données de cette URL.. Merci de m'éclairer un peu sur la méthode a adopter (en me précisant les bibliotheques a importer, etc..)

    PS: Voici un exemple d'URL : http://news.google.com/news?hl=en&ned=us&ie=UTF-8&scoring=d&q=Ryanair&output=rss

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    La classe java.net.URL contient tout ce qu'il te faut, en particulier la méthode openStream() qui gère le protocole HTTP....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    InputStream input = null;
    try {
    	URL url = new URL("http://news.google.com/news?hl=en&ned=us&ie=UTF-8&scoring=d&q=Ryanair&output=rss");
    	input = url.openConnection();
     
    	// lecture sur le input
     
    } finally {
    	if (input!=null) {
    		input.close();
    	}
    }
    a++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par adiGuba
    Salut,


    La classe java.net.URL contient tout ce qu'il te faut, en particulier la méthode openStream() qui gère le protocole HTTP....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    InputStream input = null;
    try {
    	URL url = new URL("http://news.google.com/news?hl=en&ned=us&ie=UTF-8&scoring=d&q=Ryanair&output=rss");
    	input = url.openConnection();
     
    	// lecture sur le input
     
    } finally {
    	if (input!=null) {
    		input.close();
    	}
    }
    a++
    Merci pour ton aide

    J'ai repris exactement le code que tu as écrit, et en essayant de compiler j'ai l'erreur suivante :


    --------------------Configuration: JDK version 1.5.0_04 <Default>--------------------
    C:\PR\JAVA_HICHAM\HLCrawler\HLCrawler.java:179: incompatible types
    found : java.net.URLConnection
    required: java.io.InputStream
    input = adr.openConnection();
    ^
    1 error

    Process completed.



    PS/1 : Je précise que je fais un import java.io.InputStream; au début de mon code source...

    PS/2 : le adr correspond à la variable url de ton code. je l'ai remplacé car j'avais deja la variable url

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Salut,
    Il me semble que url.openConnection renvoie un objet de type URLConnection sur le quel tu peux recuperer un inputStream !
    UML avec VIOLET

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par FreshVic
    Salut,
    Il me semble que url.openConnection renvoie un objet de type URLConnection sur le quel tu peux recuperer un inputStream !
    Dans ce cas, qu'est ce que je dois ajouter dans mon code afin de pouvoir enregistrer les données de l'URL dans un fichier XML vierge ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Essaye openStream :

    http://java.sun.com/j2se/1.4.2/docs/api/java/net/URL.html#openStream()
    UML avec VIOLET

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Exact je me suis trompé dans mon code : il n'est pas cohérent avec ce que je dis puisque j'utile openConnection() à la place de openStream()...

    openStream() est équivalent à openConnection().getInputStream() (cf javadoc) et permet d'accéder à une ressource sans se soucier du protocol exacte ni de son emplacement réel (les protocole http, file et jar sont gérés, et peut-être ftp mais c'est à vérifier)...

    Alors que l'objet URLConnection renvoyé par openConnection() permet d'obtenir plus d'infos sur la resources avant de la lire (date, taille, etc... selon le protocole).


    a++

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Bon, en changeant le code précédent par celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	InputStream input;
     
    		try {
       			URL adr = new URL("http://news.google.com/news?hl=en&ned=us&ie=UTF-8&scoring=d&q=Ryanair&output=rss");
       			input = adr.openStream(); 
       			PrintStream data = new PrintStream( new FileOutputStream("LOG/test.xml") );	
       			data.println(input);	
     
       			}
     
       		catch(Exception e)
    		{
    				System.err.println(e);
    		}
    La compilation fonctionne, par contre il me sort l'erreur suivante lors de l'execution :

    java.io.IOException: Server returned HTTP response code: 403 for URL: http://news.google.com/news?hl=en&ned=us&ie=UTF-8&scoring=d&q=Ryanair&output=rss

    J'attend votre aide ..

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Le code 403 signifie que tu n'as pas le droit d'acceder a la page !!
    Reste a savoir pourquoi !!
    UML avec VIOLET

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par FreshVic
    Le code 403 signifie que tu n'as pas le droit d'acceder a la page !!
    Reste a savoir pourquoi !!
    Oui je sais.. mais il doit bien y avoir une solution, puisque j'arrive à accéder à la page depuis l'explorateur ...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    tu as peut etre un firewall qui empeche ton programme de sortir .
    UML avec VIOLET

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par FreshVic
    tu as peut etre un firewall qui empeche ton programme de sortir .
    Je viens de verifier, je n'ai aucun firewall ...
    SVP AIDEZ MOIIIIIII

  13. #13
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Tu essayes de ton domicile ou du travail ?

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par adiGuba
    Tu essayes de ton domicile ou du travail ?
    du travail ..

  15. #15
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tonymo
    du travail ..
    Demande à ton administrateur système. C'est le seul qui pourra te répondre...

    a++

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par adiGuba
    Citation Envoyé par tonymo
    du travail ..
    Demande à ton administrateur système. C'est le seul qui pourra te répondre...

    a++
    mais t sur ke ca doit etre un probleme de firewall ? car meme en desactivant celui ke j'avais, le programme ne marche pas..

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Je suis aussi au travail , j'ai essayé ton bout de code et meme pour acceder à http://www.google.com" j'ai une :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     java.net.UnknownHostException: www.google.com
    Ca m'etonnerais pas que le proxy ou le firewall m'empeche de sortir via autre chose qu'un browser, ceci dit nous n'avons pas la meme erreur !!
    essaye avec http://www.google.com et dit nous si tu as tjrs la meme chose??
    UML avec VIOLET

  18. #18
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tonymo
    mais t sur ke ca doit etre un probleme de firewall ? car meme en desactivant celui ke j'avais, le programme ne marche pas..
    Je n'ai pas dit que c'était obligatoirement le firewall, cela peut venir de plein d'élément selon la configuration de ton réseau... mais seul ton admin pourra te répondre...

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 14
    Points : 2
    Points
    2
    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
    	try {
       			URL adr = new URL("http://www.chu-stlouis.fr/imgsls1/UserSelections.txt");
       			input = adr.openStream(); 
       			PrintStream data = new PrintStream( new FileOutputStream("LOG/test.txt") );	
       			data.println(input);	
     
       			}
     
       		catch(Exception e)
    		{
    				System.err.println(e);
    		}
    Voila, avec ce bout de code, il ne me sort plus aucune erreur, mais il écrit dans le fichier texte: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@72ffb, ce qui n'a rien a voir avec ce qu'il devrait m'afficher ..

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par tonymo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	try {
       			URL adr = new URL("http://www.chu-stlouis.fr/imgsls1/UserSelections.txt");
       			input = adr.openStream(); 
       			PrintStream data = new PrintStream( new FileOutputStream("LOG/test.txt") );	
       			data.println(input);	
     
       			}
     
       		catch(Exception e)
    		{
    				System.err.println(e);
    		}
    Voila, avec ce bout de code, il ne me sort plus aucune erreur, mais il écrit dans le fichier texte: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@72ffb, ce qui n'a rien a voir avec ce qu'il devrait m'afficher ..
    Ca c'est un autre probleme , ca vient du fait que tu fait un toString sur ton INput , c'est pas comme ca que tu dois recuperer le contenue de la stream.
    Mais bon si pour cette url ca passe , j'imagine que ca doit vouloir dire que le probleme ne vient pas du reseau !! mais bon je suis pas un expert reseau ( j'en suis meme tres loin )
    UML avec VIOLET

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/05/2014, 09h48
  2. récupérer un document XML depuis une URL
    Par ingenieurtunisien dans le forum C#
    Réponses: 12
    Dernier message: 02/10/2010, 17h53
  3. Charger un XML depuis une URL
    Par norwy dans le forum XML
    Réponses: 1
    Dernier message: 19/06/2010, 13h45
  4. Probleme de lecture d'un flux XML depuis une URL
    Par euyeusu dans le forum ASP
    Réponses: 3
    Dernier message: 10/09/2008, 22h01

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