How to Pass String Variable in MultipartEntity?

Dipak Keshariya picture Dipak Keshariya · Apr 2, 2012 · Viewed 12.7k times · Source

I am passing 3 images in MultipartEntity. This works good, but I don't know how to pass a String value into MultipartEntity. The following is my code:

public void executeMultipartPost(Bitmap bm, int i) throws Exception {
    try {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bm.compress(CompressFormat.JPEG, 75, bos);
        byte[] data = bos.toByteArray();
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost("http://www.3dsoles.com/droidapp/index.php");

        ByteArrayBody bab = new ByteArrayBody(data, "image" + i + ".jpg");
        // File file= new File("/mnt/sdcard/forest.png");
        // FileBody bin = new FileBody(file);
        MultipartEntity reqEntity = new MultipartEntity(
        HttpMultipartMode.BROWSER_COMPATIBLE);
        reqEntity.addPart("file", bab);
        // reqEntity.addPart("userID", Constants.mUserImei);
        reqEntity.addPart("photoCaption", new StringBody("sfsdfsdf"));
        postRequest.setEntity(reqEntity);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader reader = new BufferedReader(new InputStreamReader(
        response.getEntity().getContent(), "UTF-8"));
        String sResponse;
        StringBuilder s = new StringBuilder();
        while ((sResponse = reader.readLine()) != null) {
            s = s.append(sResponse);
        }
        System.out.println("Response: " + s);
    } catch (Exception e) {
        BugSenseHandler.log("Uploading File", e);
    }
}

Answer

5hssba picture 5hssba · Apr 2, 2012

See this link for additional jar files you should add..

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.tumblr.com/api/write");

try 
{
    MultipartEntity entity = new MultipartEntity();
    entity.addPart("type",new StringBody("yourstring"));
    httppost.setEntity(entity);
    HttpResponse response = httpclient.execute(httppost);
} 
catch (ClientProtocolException e) 
{ } 
catch (IOException e) 
{ }