Téléchargement depuis URL en Java
Résolu/Fermé
bksrbv
Messages postés
41
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
19 juillet 2017
-
18 juil. 2017 à 20:07
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 19 juil. 2017 à 07:28
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 19 juil. 2017 à 07:28
A voir également:
- Téléchargement depuis URL en Java
- Zone telechargement - Accueil - Outils
- Waptrick java football - Télécharger - Jeux vidéo
- Lien url - Guide
- Jeux java itel football - Télécharger - Jeux vidéo
- Télécharger jeux java gameloft gratuit - Forum Mobile
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
18 juil. 2017 à 20:18
18 juil. 2017 à 20:18
Bonjour,
1) Est-ce que le programme se termine ou il reste bloqué ?
2) Il y a une exception ? Laquelle ?
3) Quel est le protocole utilisé dans ton URL ?
4) Si tu te connectes en manuel est-ce que l'on te demande de t'identifier ?
1) Est-ce que le programme se termine ou il reste bloqué ?
2) Il y a une exception ? Laquelle ?
3) Quel est le protocole utilisé dans ton URL ?
4) Si tu te connectes en manuel est-ce que l'on te demande de t'identifier ?
bksrbv
Messages postés
41
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
19 juillet 2017
18 juil. 2017 à 20:56
18 juil. 2017 à 20:56
Ce que j'ai fais est un peu particulier, j'ai crée un projet java ou je test juste (puis je met le code dans mon autre projet) voici ma classe:
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
try {
download(new URL("http://exemple.com/exemple/download/exemple.exe"), new File("C:\\Users\\Bureau2\\AppData\\Roaming\\exemple.exe"));
} catch (Exception e) {}
}
public static void download(URL src, File dest) throws IOException {
try (PrintWriter out = new PrintWriter(dest);
Scanner in = new Scanner(src.openStream())) {
while (in.hasNextLine())
out.println(in.nextLine());
}
}
}
bksrbv
Messages postés
41
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
19 juillet 2017
18 juil. 2017 à 20:57
18 juil. 2017 à 20:57
Le protocole est http et on ne me demande pas de m'identifier.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
18 juil. 2017 à 21:06
18 juil. 2017 à 21:06
Le problème c'est que tu as fait
Fait plutôt :
catch (Exception e) {}donc en cas d'erreur elle est complètement cachée et impossible de savoir quel est le problème.
Fait plutôt :
public static void main(String[] args) throws Exception { download(new URL(...), new File(...)); }
bksrbv
Messages postés
41
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
19 juillet 2017
18 juil. 2017 à 21:09
18 juil. 2017 à 21:09
Voila les erreurs :
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://exemple.fr/capt/download/exemple.exe
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at Test.download(Test.java:21)
at Test.main(Test.java:15)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
18 juil. 2017 à 21:16
18 juil. 2017 à 21:16
Erreur 403, c'est accès refusé, tu n'as pas le droit d'accéder à ce fichier.
https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP
https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP
bksrbv
Messages postés
41
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
19 juillet 2017
18 juil. 2017 à 21:16
18 juil. 2017 à 21:16
Sauf que le fichier est sur mon serveur :/
bksrbv
Messages postés
41
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
19 juillet 2017
Modifié le 19 juil. 2017 à 00:25
Modifié le 19 juil. 2017 à 00:25
Bon et bien je suis passé par NIO et tout marche si ça peux aider quelqu'un voici les codes :
puis pour download :
Merci pour vos réponses rapides :)
private static void download(String urlStr, String file) throws IOException {
URL url = new URL(urlStr);
ReadableByteChannel rbc = Channels.newChannel(url.openStream());
FileOutputStream fos = new FileOutputStream(file);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
puis pour download :
try {
download("URL DU TELECHARGEMENT", "LIEU DU DOWNLOAD");
} catch(Exception e) {}
Merci pour vos réponses rapides :)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
19 juil. 2017 à 07:28
19 juil. 2017 à 07:28
Tu étais toujours avec le code avec le Scanner ? En effet cela ne s'applique qu'aux fichiers textes (tu avais piqué ce code dans une discussion qui concernait un fichier HTML). Mais comme tu as un fichier .exe ça casse...
Remarque : on peut simplifier ton code et le sécuriser car tu as des problèmes avec la fermeture des fichiers en cas d'erreur.
Remarque : on peut simplifier ton code et le sécuriser car tu as des problèmes avec la fermeture des fichiers en cas d'erreur.
public static void download(URL src, Path dest) throws IOException { try (InputStream in = src.openStream()) { Files.copy(in, dest, StandardCopyOption.REPLACE_EXISTING); } }
download(new URL("http://www.google.fr"), Paths.get("C:/google.html"));