jmengelle
Messages postés21Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 janvier 2009
-
24 déc. 2008 à 11:06
jmengelle
Messages postés21Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 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.
jmengelle
Messages postés21Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 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.
Thor8288
Messages postés1Date d'inscriptionvendredi 30 mai 2008StatutMembreDernière intervention20 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 ^^