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

Entrée/Sortie Java Discussion :

[ http ] fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut [ http ] fichier
    Bonjour,

    Comment tester q'un fichier existe via url http (http://car.com/test.txt) sans etre obligé d'ouvrir un inputStream desssus.
    Je veux quelque chose comme new new File(...).exists().



    Merci
    hocine

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Genre :

    File toto = new File(new java.net.URI("http://car.com/test.txt"));
    if (toto.exists()) ...
    J'ai pas essayé, je sais pas si ça marche.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Peut etre avec URLconnection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try{
    URL url=new URL("ton url");
    (new URLConnection(url)).connect();
    }catch (IOException e){
    //problemes connexion
    }

  4. #4
    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,

    Citation Envoyé par _Mac_
    J'ai pas essayé, je sais pas si ça marche.
    Cela ne peut pas marcher car File ne peut fonctionner qu'avec des fichiers en local...


    Il n'y a pas de moyen commun pour vérifier la présence d'un fichier via une URL, car cela dépend complètement du protocole utilisé !

    Pour de l'HTTP (ou HTTPS), il faut utiliser les requêtes de type HEAD qui se contente de renvoyer l'header HTTP. Il suffit donc de vérifier que le code en réponse soit bien "200 OK"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	boolean exist;
    	HttpURLConnection con = (HttpURLConnection) url.openConnection();
    	try {
    		con.setRequestMethod("HEAD");
    		exist = (con.getResponseCode()==200);
    	} finally {
    		con.disconnect();
    	}

    a++

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut
    Ok mais le probleme c'est que si le fichier n'existe pas, le con.getResponseCode() est tres long en traitement et leve une exception. Moi ce que je veux c'est de savoir rapidement que le fichier n'existe pas.



    Merci
    hocine

  6. #6
    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 hocinema
    Ok mais le probleme c'est que si le fichier n'existe pas, le con.getResponseCode() est tres long en traitement et leve une exception.
    Quel exception tu as ???
    Lors de mes tests je n'ai pas eu de lenteur particulière ou d'exception lorsque le fichier n'existait pas...

    Citation Envoyé par hocinema
    Moi ce que je veux c'est de savoir rapidement que le fichier n'existe pas.
    Si le serveur met du temps à répondre tu ne peux pas faire autrement que d'attendre...

    a++

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Utilise HttpClient de Jakarta (décidemment, j'en parle de ce truc, aujourd'hui) pour faire tes requêtes HTTP : tu peux mettre un timeout de connexion et faire une requête HEAD toute simple et vérifier le statut de retour (200 = existe, 404 = pas trouvé).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut
    Mais le probleme c'est qu'il leve une classNotFoudException à GetMethod method = new GetMethod(url).

    Par contre GetMethod method = new GetMethod() marche.



    Merci
    hocine

Discussions similaires

  1. [http] Accéder à un fichier généré par un serveur
    Par Seiya dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/02/2007, 18h10
  2. [URL] Fichier présent en HTTP : comment savoir?
    Par ®om dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 10/06/2005, 15h11
  3. Réponses: 7
    Dernier message: 19/09/2004, 22h01
  4. [HTTP] Envoi de fichiers par http
    Par Delendial dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 03/09/2004, 09h37

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