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
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
Genre :
J'ai pas essayé, je sais pas si ça marche.File toto = new File(new java.net.URI("http://car.com/test.txt"));
if (toto.exists()) ...
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
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 }
Salut,
Cela ne peut pas marcher car File ne peut fonctionner qu'avec des fichiers en local...Envoyé par _Mac_
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++
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
Quel exception tu as ???Envoyé par hocinema
Lors de mes tests je n'ai pas eu de lenteur particulière ou d'exception lorsque le fichier n'existait pas...
Si le serveur met du temps à répondre tu ne peux pas faire autrement que d'attendre...Envoyé par hocinema
a++
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
Mais le probleme c'est qu'il leve une classNotFoudException à GetMethod method = new GetMethod(url).
Par contre GetMethod method = new GetMethod() marche.
Merci
hocine
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager