title: Upload Photo using HttpPost MultiPartEntityBuilder
body: <p>I am trying to upload the taken photo to server. this is what i do:</p>
  
  <pre><code>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();
  </code></pre>
  
  <p>I get this error:</p>
  
  <blockquote>
    <p>11-29 13:12:14.924: E/AndroidRuntime(15781): Caused by:
    java.lang.NoClassDefFoundError:   org.apache.http.entity.ContentType
        11-29 13:12:14.924: E/AndroidRuntime(15781):  at  org.apache.http.entity.mime.content.FileBody.(FileBody.java:89)
        11-29 13:12:14.924: E/AndroidRuntime(15781):  at com.petcial.petopen.custom.JSONParser.makePostFileRequest(JSONParser.java:221)</p>
  </blockquote>
  
  <p>What am I doing wrong?</p>
  
  <hr>
  
  <p>Update</p>
  
  <pre><code>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();
  </code></pre>
  
  <p>here is the error:</p>
  
  <blockquote>
    <p>11-29 14:00:33.364: E/AndroidRuntime(19478): Caused by:
    java.lang.NoClassDefFoundError: org.apache.http.util.Args     11-29
    14:00:33.364: E/AndroidRuntime(19478):    at
    org.apache.http.entity.mime.content.AbstractContentBody.(AbstractContentBody.java:48)
        11-29 14:00:33.364: E/AndroidRuntime(19478):  at org.apache.http.entity.mime.content.InputStreamBody.(InputStreamBody.java:69)
      11-29 14:00:33.364: E/AndroidRuntime(19478):    at
    org.apache.http.entity.mime.content.InputStreamBody.(InputStreamBody.java:62)
      11-29 14:00:33.364: E/AndroidRuntime(19478):    at
    com.petcial.petopen.custom.JSONParser.makePostFileRequest(JSONParser.java:233)</p>
  </blockquote>
  
  <p>these libraries solved my issue:</p>
  
  <p><img src="https://i.stack.imgur.com/U8Kde.png" alt=""></p>