Could not find class 'org.apache.http.entity.mime.content.Filebody', referenced from method

12,923

Solution 1

Add these two dependency

compile "org.apache.httpcomponents:httpcore:4.2.4"
compile "org.apache.httpcomponents:httpmime:4.3"

Solution 2

You need to have httpmime-4.0.jar in your classpath. You may (i guess you do) have this jar into your project, but is it inside your application during runtime? If i understand it correctly you get this from the android application. You need to have this jar inthe classpath of your android.

Solution 3

  • Add dependency :

    compile 'org.apache.httpcomponents:httpcore:4.4.4'
Share:
12,923
Mat
Author by

Mat

Updated on July 31, 2022

Comments

  • Mat
    Mat over 1 year

    What I'm trying to do is to send a picture to a web server. When I call a method in my Android project I get the following error: could not find class 'org.apache.http.entity.mime.content.Filebody', referenced from method com.example.tc.Send.send.

    This happens eventhough I've got the following imports:

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.mime.MultipartEntity;
    import org.apache.http.entity.mime.content.FileBody;
    import org.apache.http.impl.client.DefaultHttpClient;
    

    This is what the class looks like in which the method lies:

    public class Send {
    public Send(){
    }
    
    public static String send(String path) throws Exception {
        String filePath = path;
        String svar;
    
        HttpClient httpclient = new DefaultHttpClient();
        try {
            HttpPost httppost = new HttpPost("path to web server"); 
            FileBody pic = new FileBody(new File(filePath)); 
            MultipartEntity requestEntity = new MultipartEntity(); 
            requestEntity.addPart("file", pic);
    
            httppost.setEntity(requestEntity);
            System.out.println("executing request " + httppost.getRequestLine());
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity responseEntity = response.getEntity();
            System.out.println("----------------------------------------");
            System.out.println(response.getStatusLine());
    
            ByteArrayOutputStream outstream = new ByteArrayOutputStream();
            response.getEntity().writeTo(outstream);
            byte [] responseBody = outstream.toByteArray();
            svar = new String(responseBody);
            System.out.println(svar);
    
        } finally {
            try {
                httpclient.getConnectionManager().shutdown();
            } 
            catch (Exception ignore) {
            }
        }
        return svar;
    }
    }
    

    Can anyone see what the problem is?