Send Image and String by using MultipartEntity

1.6k Views Asked by At

I am working on an app that allows the user upload an image by using HttpPost method. I use MultipartEntity and therefore I added the libraries apache-mime4j-0.6.1.jar, httpclient-4.3.1.jar, httpcore-4.3.1.jar and httpmime-4.2.1.jar into my app. My upload code is like below:

public String uploadFile() throws Exception
{
    String result = "";
    try 
    {

            HttpResponse response = null;
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost request = new HttpPost(_url);

            request.setHeader("Accept", "application/json");

            File file=new File(filePath);
            String fileName=file.getName();


            MultipartEntity imageEntity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"));
            imageEntity.addPart("imageName", new StringBody(fileName));
            imageEntity.addPart("image", new FileBody(file, "application/octet-stream"));
            request.setEntity(imageEntity);


            response = httpClient.execute(request);

            InputStream dataStream = response.getEntity().getContent();
            BufferedReader dataReader = new BufferedReader(new InputStreamReader(dataStream));
            String line = "";
            while ((line = dataReader.readLine()) != null) 
                result+=line;

    } 

    catch (Exception e) 
    {

    }

    return result;
}

I get response from my server but in my web service code Request.Files has no file. If I change the line:

MultipartEntity imageEntity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"));

to

MultipartEntity imageEntity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

app is in process for a long time (about 3-4 minutes) and throws error. This is caused if I add an image. If I send only StringBody without FileBody, I get response from server and Request.Files in my webservice code return file count correctly. How can I fix this problem and upload image correctly? Any suggestion?

0

There are 0 best solutions below