Telecharger un fichier depuis url : reprise de telechargement ?

Résolu
jmengelle Messages postés 21 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 janvier 2009 - 24 déc. 2008 à 11:06
jmengelle Messages postés 21 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 janvier 2009 - 20 janv. 2009 à 10:06
Bonjour à tous,

voilà, j'ai un peu de temps à perdre et j'essaye de faire un petit utilitaire pour télécharger un fichier depuis une URL.

Pas de problème pour l'opération en elle même, mais je voudrais améliorer un peu la chose en proposant le reprise de téléchargement (pause/resume). Et c'est là que ça ce complique, car j'ai la vague impression que ce ne soit pas possible, mais dans le doute je viens vous consulter ;)

J'emploi une méthode assez basique qui pour résumer est la suivante :

Proxy proxy = new
Proxy(Proxy.Type.HTTP,new
InetSocketAddress(ip
,portNumber));
URL myUrl = new
URL("xxxxxxxxxxx"
);
URLConnection urlConn2 = myUrl.openConnection(proxy);
... [code pour d'éventuel paramètre/cookies dans la requête]...
urlConn2.connect();
InputStream input = urlConn2.getInputStream();
...[Manipulation classique du stream pour lire le contenu]...

et donc je ne vois pas comment faire ce que je veux.

Je n'ai pas trouvé de méthode sur URLConnection  qui pourrait convenir, je peux juste récupérer le flux.

Et sur le flux, j'ai tenter (bien que pas convaincu) la méthode skip(long) mais sans succès, car bien entendu pour déplacer le pointeur au bon endroit il faut acquerir le flux, ce qui se traduit ici par un téléchargement de tout ce qui précède la position de l'offset.

ça me semble donc mal engagé!

Mais existerait t'il d'autre méthode pour arrivé à mes fins ? (éventuellement dans d'autre langage de programmation en dernier recourt)
j'ai du tenter d'utiliser un objet HttpClient sans plus d'ouverture.

Merci pour vos suggestions.

2 réponses

jmengelle Messages postés 21 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 janvier 2009
20 janv. 2009 à 10:06
Non.

Mais depuis le temps j'ai résolu le problème en utilisant la propriété "range" de la requêtte HTTP qui permet de demander la plage de byte qu'on souhaite.
3
Thor8288 Messages postés 1 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 20 janvier 2009
20 janv. 2009 à 01:21
et par la méthode <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" /><title></title><meta name="GENERATOR" content="OpenOffice.org 2.4 (Win32)" /><style type="text/css"><!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
--></style>"getData
()" ?
Enfin je suis ptêt à coté de la plaque ^^
0
Rejoignez-nous