IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Téléchargement de fichiers par protocole HTTP


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Par défaut Téléchargement de fichiers par protocole HTTP
    Bonjour à tous,

    J'ai développé une application qui me permet de télécharger une liste d'environ 6 à 8 fichiers .swf stockés sur un serveur par le biais du protocole HTTP.

    J'ai tout d'abord utilisé l'objet urlconnection (java.net), puis cherchant une solution moins bancale, j'ai opté pour l'objet httpclient (apache).

    Je rencontre pourtant un problème récurrent : l'application essaie de télécharger le premier .swf de la liste lors de son premier lancement mais avec un débit très faible (moins de 10ko/s !), elle réussit à télécharger les deux premiers .swf de la liste lors de son deuxième lancement mais peine sur le troisième, puis réussit à télécharger l'intégralité des .swf de la liste à partir de son troisième démarrage !

    Quelles pourraient-être la(les) cause(s) ? Si vous avez des pistes, je suis preneur.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par Akabonga Voir le message
    J'ai tout d'abord utilisé l'objet urlconnection (java.net), puis cherchant une solution moins bancale, j'ai opté pour l'objet httpclient (apache).
    Pourquoi bancale ???
    HttpClient est plus complet mais s'il s'agit uniquement de télécharger un fichier URLConnection fait très bien l'affaire...

    Citation Envoyé par Akabonga Voir le message
    Quelles pourraient-être la(les) cause(s) ? Si vous avez des pistes, je suis preneur.
    Sans code difficile de t'aider...

    Ces fichiers se téléchargent bien avec un navigateur ?

    a++

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Par défaut
    Citation Envoyé par adiGuba
    Pourquoi bancale ???
    HttpClient est plus complet mais s'il s'agit uniquement de télécharger un fichier URLConnection fait très bien l'affaire...
    Bancale n'est peut-être pas le terme approprié. Disons que je cherchais une solution stable et prête en main, au contraire de la classe URLConnection qui m'oblige à lire le fichier sur le serveur et copier morceau par morceau dans un fichier sur le pc local. Je me doute cependant que le principe reste le même avec HttpClient.

    Citation Envoyé par adiGuba
    Sans code difficile de t'aider...

    Ces fichiers se téléchargent bien avec un navigateur ?
    Oui, ces fichiers se téléchargent sans problème avec un navigateur. Ils font en général quelques centaines de Ko. Le plus gros flash pèse 7 Mo.

    Voici les deux codes utilisés :

    Code URLCONNECTION : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    for(tous_les_flash_de_ma_playlist){
    
        URL url = new URL(url_du_flash_de_ma_playlist)
        URLConnection connection = url.openConnection();		
        File download = new File(nom_du_flash);
    			
        if(connection.getContentLength() != download.length()){			
            try{					
                InputStream is = connection.getInputStream();
                FileOutputStream fos = new FileOutputStream(nom_du_flash);
                byte[] buffer = new byte[1024];
                int read;
                while ((read = is.read(buffer)) > 0)
                    fos.write(buffer, 0, read);
                fos.flush();
                fos.close();
                is.close();
            } catch (Exception e) {}
        }
    }

    Code HTTPCLIENT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    for(tous_les_flash_de_ma_playlist){
    
        httpget = new HttpGet(url_du_flash_de_ma_playlist);
        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();
    			
        File download = new File(nom_du_flash);
    			
        if(entity != null && entity.getContentLength() != download.length()){			
            try{					
                FileOutputStream fos = new FileOutputStream(nom_du_flash);
                entity.writeTo(fos);
                fos.flush();
                fos.close();
            } catch (Exception e) {}
        }
        httpget.abort();
    }
    httpclient.getConnectionManager().shutdown();

    Merci de ton aide !

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    C'est sûr que comme ca on n'est pas embêté avec les exceptions...

    a++

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Par défaut
    Oui en fait je n'ai pas développé les exceptions dans mon copier/coller ^^

    Les voici (sachant que j'ai un fichier de log qui me sert à enregistrer le suivi de mon programme) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    }catch(IOException e){
        Log.ecrireLog("Erreur lors du téléchargement du flash "+s.getName());
    }catch(Exception e){
        Log.ecrireLog("Exception levée "+e.toString());
    }
    Le problème pourrait-il venir des exceptions ?

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Et c'est normal que tu continues ton traitement en cas d'exception ? Il n'y en a pas dans les log au moins ???

    Je rajouterais qu'il manque les try/finally et que le code ne compile pas (d'où vient writeFile ?).


    Enfin à quoi servent les comparaisons de taille ????


    a++

Discussions similaires

  1. Téléchargement de fichier par protocole HTTP
    Par totos18 dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2008, 20h13
  2. Réponses: 2
    Dernier message: 07/02/2008, 11h28
  3. Réponses: 6
    Dernier message: 15/12/2006, 17h03
  4. [Configuration] Téléchargement de fichier par HTTP
    Par Thierry8 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 06/06/2006, 23h30
  5. Téléchargement de fichiers par HTTP / FTP
    Par Gladiator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/12/2005, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo