Télécharger une Photo à l'aide de HttpPost MultiPartEntityBuilder

Je suis en train de télécharger la photo prise au serveur. c'est ce que je fais:

public JSONObject makePostFileRequest(String url, String photoFile) {
    try {
        //photoFile = /path/tofile/pic.jpg
        DefaultHttpClient httpClient = GlobalData.httpClient;
        HttpPost httpPost = new HttpPost(url);

        File file = new File(photoFile);
        FileBody fileBody = new FileBody(file); //here is line 221

        MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();

        multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        multipartEntity.addPart("PhotoMessage", fileBody);

        httpPost.setEntity(multipartEntity.build());

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

J'obtiens cette erreur:

11-29 13:12:14.924: E/AndroidRuntime(15781): Causé par:
java.lang.NoClassDefFoundError: org.apache.http.de l'entité.ContentType
11-29 13:12:14.924: E/AndroidRuntime(15781): au org.apache.http.de l'entité.le mime.contenu.FileBody.(FileBody.java:89)
11-29 13:12:14.924: E/AndroidRuntime(15781): au com.petcial.petopen.la coutume.JSONParser.makePostFileRequest(JSONParser.java:221)

Ce que je fais mal?


Mise à jour

InputStream inputStream;
inputStream = new FileInputStream(new File(photoFile));
byte[] data;
data = IOUtils.toByteArray(inputStream);

httpClient.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
                        System.getProperty("http.agent"));
InputStreamBody inputStreamBody = new InputStreamBody(new ByteArrayInputStream(data), "Pic.jpg");

MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();

multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("PhotoMessage", inputStreamBody);

httpPost.setEntity(multipartEntity.build());

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();

voici l'erreur:

11-29 14:00:33.364: E/AndroidRuntime(19478): Causé par:
java.lang.NoClassDefFoundError: org.apache.http.util.Args 11-29
14:00:33.364: E/AndroidRuntime(19478): à
org.apache.http.de l'entité.le mime.contenu.AbstractContentBody.(AbstractContentBody.java:48)
11-29 14:00:33.364: E/AndroidRuntime(19478): au org.apache.http.de l'entité.le mime.contenu.InputStreamBody.(InputStreamBody.java:69)
11-29 14:00:33.364: E/AndroidRuntime(19478): à
org.apache.http.de l'entité.le mime.contenu.InputStreamBody.(InputStreamBody.java:62)
11-29 14:00:33.364: E/AndroidRuntime(19478): à
com.petcial.petopen.la coutume.JSONParser.makePostFileRequest(JSONParser.java:233)

ces bibliothèques résolu mon problème:

Télécharger une Photo à l'aide de HttpPost MultiPartEntityBuilder

  • FileBody n'appartient pas à la norme Android bibliothèque. Ce pot que vous utilisez?
  • ont u ajoutée httpmime-4.3.jar dans le projet?
  • bien sûr. dans le dossier libs
  • Quelle IDE utilisez-vous? Eclipse? Si donc, assurez-vous qu'il est ajouté et exportés, comme dans cette réponse
  • Salut, @FilipLuch avez vous trouvez une solution pour ce problème?
  • oui. découvrez la dernière mise à jour de ma question, et l'on a accepté la réponse.