How to send file in JSON on android?

NewDroidDev picture NewDroidDev · Aug 5, 2013 · Viewed 16.8k times · Source

I want to send files in JSON using http client I don't know how would I start can anyone suggest what should I need to do? I'm going to send data on this JSON format:

 {
    "Filename": "282850ad-de5c-498f-8280-2d4b6d77b774.jpg",
    "ChunkId":1,
    "ChunkLength":11397,
    "FileLength":11397
 }

As you see I'm going to send files in chunk. I don't know if I'm going to convert the file into byte array. If I needed can anyone give some sample code thanks.

Answer

Mukesh Garg picture Mukesh Garg · Aug 5, 2013

To send Text File or Image File on Server you can use MultiPartEntity.

DefaultHttpClient localDefaultHttpClient = new DefaultHttpClient();

      FileBody localFileBody = new FileBody(new File(this.picturePath), "image/jpg");
      HttpPost localHttpPost = new HttpPost("http://website.com/path/....");
      MultipartEntity localMultipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
      try
      {
        Log.d("picturepath", this.picturePath);
        localMultipartEntity.addPart("Email", new StringBody("[email protected]"));
        localMultipartEntity.addPart("password", new StringBody("password"));
        localMultipartEntity.addPart("phone", new StringBody("9875......."));
        localMultipartEntity.addPart("profilepicture", localFileBody);
        localHttpPost.setEntity(localMultipartEntity);
        HttpResponse localHttpResponse = localDefaultHttpClient.execute(localHttpPost);
        System.out.println("responsecode" + localHttpResponse.getStatusLine().getStatusCode());
}
catch (Exception e)
      {
        Log.d("exception", e.toString());
      }

This is working, as this code is part of my Running project.