Téléchargement depuis URL en Java
Résolu
bksrbv
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un problème lors des téléchargements à partir d'un URL, mon fichier téléchargé reste à 0ko donc inutilisable. Voici le code (de KX ) :
puis lorsque je lance :
Merci !
:D
J'ai un problème lors des téléchargements à partir d'un URL, mon fichier téléchargé reste à 0ko donc inutilisable. Voici le code (de KX ) :
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());
}
}
puis lorsque je lance :
download(new URL("[URL du téléchargement]"), new File("[destination fichier]"));
Merci !
:D
A voir également:
- Téléchargement depuis URL en Java
- Url - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Telechargement direct - Accueil - Outils
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
3 réponses
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 ?
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());
}
}
}
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)
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 :)
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"));