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

Format d'�change (XML, JSON...) Java Discussion :

Comment envoyer une requ�te avec HttpClient et r�cup�rer son r�sultat en XML


Sujet :

Format d'�change (XML, JSON...) Java

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Comment envoyer une requ�te avec HttpClient et r�cup�rer son r�sultat en XML
    Bonjour,

    J'aimerais savoir comment poster une requette HTTP et r�cup�rer la r�ponse on utilisant httpClient. Je voudrais poster une requette http� un serveur via httpClient et qui va me retourner une r�ponse sous format XML comme r�sultat aussi.
    Merci de votre aide

  2. #2
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Salut,

    Tu trouveras une documentation (avec un exemple de post) ici : http://hc.apache.org/httpcomponents-...uickstart.html.

    Sur la r�ponse tu peux r�cup�rer ton r�sultat par l'instance de HttpEntity en xml par sa m�thode getContent() qui retourne un InputStream que tu pourras injecter dans le parser XML de ton choix.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonjour
    Merci pour ta r�ponse Joel.
    Je vais jeter un coup d' �il.
    Ma deuxi�me question c' est comment faire une requ�te qui envoie de fichier zip dans le serveur tomcat en http client. Ce fichier se trouve en local.
    C est a dire, c est un programme qui envoie de requ�te automatique a chaque fois qu' i y a nouveau fichier.
    Je te remercie.

  4. #4
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonjour
    Merci pour ta r�ponse Joel,

    Mais je ne vois, comment on pr�cise le chemin ou on r�cup�re ou en trouve le fichier dans mon pc. C est �a qui me pose de probl�me vraiment.

    Si tu as une id�e, suis toujours prenant :-)

    Merci encore � toi

  6. #6
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    il n'y a pas � trouver le fichier bien s�r, tu ne peux pas deviner o� il se trouve et aucune application non plus... soit tu sais o� il se trouve (c'est impos�, c'est un dossier de spool, c'est un emplacement standard, etc.), soit tu le demandes � l'utilisateur (il le passe par param�tre au lancement de l'application (comme dans l'exemple du quickstart), ou alors il le saisit dans un formulaire, etc...), ou toute autre moyen de d�termination.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  7. #7
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Rebonjour Joel
    J' ai vu, le lien que tu m 'a montr� ((http://hc.apache.org/httpcomponents-...tFormPost.java
    J ai telecharg� les diff�rents librairie
    Apres, j' ai fait de copie coll� le code :


    Code : 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
    21
    22
    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpGet httpGet = new HttpGet("http://targethost/homepage");
    CloseableHttpResponse response1 = httpclient.execute(httpGet);
     
     
    try {
        System.out.println(response1.getStatusLine());
        HttpEntity entity1 = response1.getEntity();
        // do something useful with the response body
        // and ensure it is fully consumed
        EntityUtils.consume(entity1);
    } finally {
        response1.close();
    }
     
    HttpPost httpPost = new HttpPost("http://targethost/login");
    List <NameValuePair> nvps = new ArrayList <NameValuePair>();
    nvps.add(new BasicNameValuePair("username", "vip"));
    nvps.add(new BasicNameValuePair("password", "secret"));
    httpPost.setEntity(new UrlEncodedFormEntity(nvps));
    CloseableHttpResponse response2 = httpclient.execute(httpPost);
    .close();
    ......



    Et quand je l' ex�cute avec le serveur , ca fait:

    ==> Etat HTTP 404 -

    --------------------------------------------------------------------------------

    type Rapport d''�tat

    message

    description La ressource demand�e () n'est pas disponible.


    --------------------------------------------------------------------------------

    Apache Tomcat/7.0.12


    Je ne sais pas si tu as une id�e

  8. #8
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Dans l'exemple, il utilise une URL bidon "http:/targethost/login" que tu dois remplacer par ton URL, sous la forme :

    http://<ton adresse ip � toi ou ton nom de domaine>:<le port d'�coute de ton serveur>/<le nom de ta page ou servlet>


    Si ton serveur est sur ton poste, et que le tomcat est d�marr� sur le port 8080 et que ton nom de page ou servlet c'est homepage, ce sera "http://localhost:8080/homepage".

    Au passage, tu as copi� l'exemple du GET et du POST. Les deux sont � la suite l'un de l'autre : le premier c'est le get, avec HttpGet, comme "http get", et le second c'est le post, avec HttpPost, comme "http post"). Tu n'as besoin que du post �videmment.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  9. #9
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut
    Merci beaucoup pour ton explication Joel

    :-)

  10. #10
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonsoir Joel
    Je tiens tjrs a te remercier, tu m ' a vraiment aid�, gr�ce � toi je vois maintenant comme fonctionne ce truc

    Ma question maintenant: supposons que j' utilise un serveur qui n est pas local, je fais comment pour le communiquer. Comment je renseigne le informations en http client (le port du serveur , mot de passe etc) .

    Je te remercie

  11. #11
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Pour l'authentification, il y faut juste changer la fa�on de cr�er l'instance de CloseableHttpClient. Exemple ici.

    Pour un serveur distant, c'est exactement pareil que pour un serveur local : il suffit de mettre la bonne URL en param�tre.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  12. #12
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonsoir Joel
    Merci beaucoup Joel

    A propos de l' envoie d' un fichier dans le serveur,

    J' ai une page jsp , cette page sert pour uploader


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <head>
            <title>Upload Servlet 3.0</title>
        </head>
        <body>
            <form action="../upload" method="post" enctype="multipart/form-data">
                <label for="file">Fichiers : </label>
                <input type="file" id="file1" name="file1">
                <input type="submit" value="Envoyer">
            </form>
            <c:if test="${not empty part.name}">
                <br/>Fichier ${parts.file.name} upload&eacute; avec succ&egrave;s!
            </c:if>
        </body>
    son url => http://localhost:8080/MEDIATHEQUE-war/pages/upload.jsp

    Pour le traitement = j' ai une servlet derriere

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    @WebServlet(urlPatterns={"/upload"})
    @MultipartConfig(location="C:\\Users\\sangdou\\Desktop\\repupload", maxFileSize=10485760L) // 10Mo.
    public class Upload extends HttpServlet {
     
        // parametres de l’upload
        .....
    Voila le sc�nario:
    1) un client lance la page , il cherche son fichier dans son r�pertoire
    2) il clique le bouton valid� une fois il trouve son fichier
    3) le serveur re�oit ce fichier et le stock dans un r�pertoire ( C:\\repupload)

    Mon soucis ce que j ' essaie de faire un test de requ�te en httpclient mais je n arrive pas.
    C' est � dire d ' envoyer ce fichier httpclient
    J' ai bien regard� le lien que tu m' a donn� => http://hc.apache.org/httpcomponents-...tFormPost.java
    j 'ai essay� mais je tourne en rond.

    Je ne sais pas si tu vois ce que je veux dire

    Merci Joel

  13. #13
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Donc tu as une application web, avec une page html avec formulaire qui communique avec une servlet pour uploader un fichier.

    Ce que tu dois faire c'est simuler cette page web, donc simuler le fonctionnement du formulaire. L'URL que tu dois joindre c'est donc l'URL de la servlet. Le fichier � passer en param�tre doit avoir le m�me nom que dans le formulaire (file1 donc).

    Dans l'exemple, on voit
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    HttpEntity reqEntity = MultipartEntityBuilder.create()
                        .addPart("bin", bin)
                        .addPart("comment", comment)
                        .build();
    Ici on passe 2 param�tres, appel� bin et comment. Et bien toi tu as juste � faire � la place:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    HttpEntity reqEntity = MultipartEntityBuilder.create()
                        .addPart("file1", bin)
                        .build();

    En ce qui concerne l'authentification, il faut voir quel type d'authentification le site web met en place; Est-ce juste une page avec un formulaire qui poste 2 champs, user et password avec une servlet qui valide, ou est-ce un syst�me d'authentification genre basic auth, digest, oauth ou que sais-je.

    Pour une page avec formulaire, tu auras juste � simuler la navigation en quelque sort, en faisant une premi�re requ�te vers la servlet de validation du login puis appeler l'autre servlet avec la m�me instance de HttpClient. Pour que le JSessionID persiste entre les deux appels, il faudra utiliser un CookieStore. SI tu regardes le premier lien que je t'ai donn�e, il y a un lien vers des tutoriaux : le chapitre 3.5 donne un exemple pour mettre en place le cookiestore.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  14. #14
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonsoir Joel
    Je te remercie pour tes r�ponses, c est gentil de ta part

    Les pages ne sont pas encore s�curis� donc il y a pas de soucis pour ca pour l' instant.

    Mais j' ai toujours la m�me soucis par rapport au httpclient de Upload

    La page jsp c est tjr la m�me
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     <form action="../upload" method="post" enctype="multipart/form-data">
                <label for="file">Fichiers : </label>
                <input type="file" id="file1" name="file1">
                <input type="file" id="file2" name="file2">
                <input type="submit" value="Envoyer">
            </form>
    url de la page :

    Servlet de traitement:
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    @WebServlet(urlPatterns={"/upload"})
    @MultipartConfig(location="C:\\Users\\sangdou\\Desktop\\repupload", maxFileSize=10485760L) // 10Mo.
    public class Upload extends HttpServlet {
     
        // parametres de l’upload
        private static final int TAILLE_BUFFER=10240;
        private static final String TYPE_CONTENU="content-disposition";
        private static final String NOM_TYPE_CONTENU="filename";
        private static final boolean MODE_MULTIPART=true;
     
        protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
        {
            // parcourir chaque paramètre reçu
            for (Part p: request.getParts())
            {
               String typeContenu=p.getContentType();
               if(typeContenu!=null)
               {
                  // upload
                  Part part=this.uploadFichier(p);
                  request.setAttribute("part", part);
               }
            }
            // retour sur la page d’upload
            request.getRequestDispatcher("/upload.jsp").forward(request, 
    response);
        }
     
        // affichage de la page de chargement
        protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
        {
            request.getRequestDispatcher("/upload.jsp").forward(request, response);
        }
     
        // upload du fichier
        private Part uploadFichier(Part part) throws IOException
        {
            // retrouver le nom du fichier uploadé
            String filename=this.getNomFichier(part);
            // mise en forme du nom
            String prefix=filename;
            String suffix="";
            if (filename.contains(".")) {
                prefix=filename.substring(0, filename.lastIndexOf('.'));
                suffix=filename.substring(filename.lastIndexOf('.'));
            }
            // écrire le fichier
            File file=File.createTempFile(prefix + "_", suffix, new File(this.getClass().getAnnotation(MultipartConfig.class).location()));
     
            // copie simple
            if (MODE_MULTIPART) {
                part.write(file.getName());
            }
            // copie streaming
            else
            {
                InputStream input = null;
                OutputStream output = null;
                try {
                    input = new BufferedInputStream(part.getInputStream(), TAILLE_BUFFER);
                    output = new BufferedOutputStream(new FileOutputStream(file), TAILLE_BUFFER);
                    byte[] buffer = new byte[TAILLE_BUFFER];
                    for (int length = 0; ((length = input.read(buffer)) > 0);) 
    {
                        output.write(buffer, 0, length);
                    }
    url servlet :http://localhost:8080/MEDIATHEQUE-war/upload


    Code pour le http client
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class ClientMultipartFormPost {
     
        public static void main(String[] args) throws Exception {
            if (args.length != 1)  {
                System.exit(1);
            }
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                HttpPost httppost = new HttpPost("http://localhost:8080/MEDIATHEQUE-war/upload");
     
     
     
                FileBody bin = new FileBody(new File("C://Users//sangdou//Desktop//Document.zip"));           //REPERTOIRE DE FICHIER A ENVOYER
                StringBody  comment= new StringBody("A binary file of some kind", ContentType.TEXT_HTML);
     
                HttpEntity reqEntity = MultipartEntityBuilder.create()
                        .addPart("file1", bin)
                        .addPart("file2", comment)
                        .build();
     
     
                httppost.setEntity(reqEntity);
     
                System.out.println("executing request " + httppost.getRequestLine());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    System.out.println("----------------------------------------");
                    System.out.println(response.getStatusLine());
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        System.out.println("Response content length: " + resEntity.getContentLength());
                    }
                    EntityUtils.consume(resEntity);
                } finally {
                    response.close();
                }
            } finally {
                httpclient.close();
            }
        }

    Resultat d' executiop:

    run:
    C:\Users\sangdou\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 2 seconds)


    Je ne sais pas c est ou le probl�me en fait.
    Si tu as une id�e.

    Je te remercie.

  15. #15
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonsoir Joel
    J' ai modifi� un peu le code:
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    public static void main(String[] args) throws Exception {
     
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                HttpPost httppost = new HttpPost("http://localhost:8080/MEDIATHEQUE-war/upload");
     
     
                FileBody file1 = new FileBody(new File("C://Users//sangdou//Desktop//Document.zip"));
                StringBody  file2= new StringBody("A binary file of some kind", ContentType.TEXT_HTML);
     
     
                HttpEntity reqEntity = MultipartEntityBuilder.create()
                        .addPart("file1", file1)
                        .addPart("file2", file2)
                        .build();
     
     
     
     
                httppost.setEntity(reqEntity);
     
     
                System.out.println("executing request " + httppost.getRequestLine());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    System.out.println("----------------------------------------");
                    System.out.println(response.getStatusLine());
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        System.out.println("Response content length: " + resEntity.getContentLength());
                    }
                    EntityUtils.consume(resEntity);

    QUAND JE L EXECUTE, ca fait:

    run
    executing request POST http://localhost:8080/MEDIATHEQUE-war/upload HTTP/1.1
    ----------------------------------------
    HTTP/1.1 404 Not Found
    Response content length: 1086
    BUILD SUCCESSFUL (total time: 7 seconds)

    Il trouve pas la page,je vois pas il est ou le pepin

    Si tu as une id�e sur �a.

    Merci :-) !!!!

  16. #16
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Une 404 signifie qu'il n'y a pas de ressource � l'URL demand�e. Si tu entres l'URL du formulaire dans un navigateur, tu ontiens quelque chose ou une 404. Et pour l'URL de la servlet ? Le serveur est d�marr� au moins ?

    Par ailleurs, poiurquoi ce n'est pas le m�me formulaire dans tes 2 messages ? Un a 2 input de type file et l'autre un seul. Il faudrait savoir et adapter le code d'appel (dans ton code d'appel, tu passes un seul file et une string en second param�tre.
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

  17. #17
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2017
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 24
    Par d�faut Bonjour Joel
    Enfait, je veux envoyer deux fichier a la fois, donc j' ai modifi� aussi la page jsp en dux file
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    <input type="file" id="file1" name="file1">
    <input type="file" id="file2" name="file2">
    Quand je lance cette page , l' upload passe , il y a pas d' erreur.

    Pareil pour l' url de la servlet, il y a pas de soucis quand je la lance.

    Maintenant, dans le httpclient:

    -j' ai corrig� le param�tre , j ai modifi� le param�tr� string comme tu as vue en file donc ca devient:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    FileBody file1 = new FileBody(new File("C://Users//sangdou//Desktop//Document.zip"));
                FileBody file2 = new FileBody(new File("C://Users//sangdou//Desktop//a.zip"));
     
                HttpEntity reqEntity = MultipartEntityBuilder.create()
                        .addPart("file1", file1)
                        .addPart("file2", file2)
                        .build();
    Quand je l' ex�cute , ca m' dux erreur,

    soit :
    executing request POST http://localhost:8080/MEDIATHEQUE-war/upload HTTP/1.1
    ----------------------------------------
    HTTP/1.1 404 Not Found
    Response content length: 1086

    soit :
    executing request POST http://localhost:8080/MEDIATHEQUE-war/upload HTTP/1.1
    ----------------------------------------
    HTTP/1.1 500 Internal Server Error
    Response content length: 0

    Je red�marre le serveur, mais ca regle pas le probleme

    Par contre, lorsque j' utilise un seul paremetre:

    code jsp:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <input type="file" id="file1" name="file1">
    code servlet:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    FileBody file1 = new FileBody(new File("C://Users//sangdou//Desktop//Document.zip"));
     
                HttpEntity reqEntity = MultipartEntityBuilder.create()
                        .addPart("file1", file1)
                        .build();
    Ca marche tres bien:

    executing request POST http://localhost:8080/MEDIATHEQUE-war/upload HTTP/1.1
    ----------------------------------------
    HTTP/1.1 200 OK
    Response content length: -1
    BUILD SUCCESSFUL (total time: 12 seconds)

    Je sais pas si tu vois le soucis

    Je te remercie

    Cdt

  18. #18
    Mod�rateur
    Avatar de joel.drigo
    Homme Profil pro
    Ing�nieur R&D - D�veloppeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 56
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D - D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par d�faut
    Il faudrait regarder les traces d'exception dans le log ou la console du serveur.

    En revanche, �a fait un bail que je n'ai pas fait de servlet, mais je trouve chelou le forward vers la servlet elle-m�me � la fin du post. L'upload fonctionne via un navigateur ?
    L'expression "�a marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le probl�me.
    La plupart des r�ponses � vos questions sont d�j� dans les FAQs ou les Tutoriels, ou peut-�tre dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement pos�e et r�dig�e et vous aurez plus de chances de r�ponses adapt�es et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'�diteur de messages).
    Nouveau sur le forum ? Consultez Les R�gles du Club.

Discussions similaires

  1. comment faire une requ�te avec une association porteuse de donn�es
    Par gaelle95 dans le forum Acc�s aux donn�es
    R�ponses: 3
    Dernier message: 25/11/2009, 15h49
  2. R�ponses: 6
    Dernier message: 11/07/2008, 09h34
  3. R�ponses: 2
    Dernier message: 03/05/2006, 17h00
  4. [ABAP] Comment cr�er une requ�te avec jointure
    Par roadster62 dans le forum SAP
    R�ponses: 1
    Dernier message: 21/02/2006, 16h04
  5. Comment envoyer une requ�te POST via HTTP ?
    Par pdtor dans le forum C++
    R�ponses: 2
    Dernier message: 13/09/2005, 05h54

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