0

I want to upload images to server.

Here is the code,

 try { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(Constants.yigit); Charset chars = Charset.forName("UTF-8"); // Setting up the encoding MultipartEntity reqEntity = new MultipartEntity(); StringBody jsonBody = new StringBody(getNewDemandRequestParams(), "application/json",null); FormBodyPart jsonBodyPart = new FormBodyPart("data", jsonBody); reqEntity.addPart(jsonBodyPart); if (getMainActivity().getImagesSavedData(0).size() > 0) { for (int i = 0; i < getMainActivity().getImagesSavedData(0).size(); i++) { File _file = new File(getMainActivity().getImagesSavedData(0).get(i).getFilePath()); FileBody _fileBody = new FileBody(_file, "image/jpg", "UTF-8"); FormBodyPart fileBodyPart = new FormBodyPart(getMainActivity().getImagesSavedData(0).get(i).getImageName().replace(".jpg", ""), _fileBody); reqEntity.addPart(fileBodyPart); reqEntity.addPart(getMainActivity().getImagesSavedData(0).get(i).getImageName().replace(".jpg",""), _fileBody); } } post.setEntity(reqEntity); String result = EntityUtils.toString(reqEntity); Log.e("rsul", result); HttpResponse response = client.execute(post); resEntity = response.getEntity(); final String response_str = EntityUtils.toString(resEntity); } 

But the problem is jsonBodyPart is including slashes.

Request body like this:

{"data"=>"{\"action\":\"YENITALEP\",\"app\":{\"version\":\"verisyon\"},\"data\":{\"invoices\":[{\"imageName\":\"1395914025134\",\"note\":\"\",\"type\":\"FATURA\",\"typeNo\":\"0\"}],\"note\":\"\",\"notification\":[{\"type\":\"BeniAray?n\",\"typeNo\":\"0\"}]},\"device\":{\"hardwareModel\":\"m7\",\"model\":\"HTC One\",\"systemVersion\":\"4.4.2\",\"uid\":\"00000000-7f39-faab-b500-7f280e9b4fed\"},\"timestamp\":\"Date(1391073711000+0200)\"}", "1395914025134"=>#, @original_filename="1395914025134.jpg", @content_type="image/jpg; charset=UTF-8", @headers="Content-Disposition: form-data; name=\"1395914025134\"; filename=\"1395914025134.jpg\"\r\nContent-Type: image/jpg; charset=UTF-8\r\nContent-Transfer-Encoding: binary\r\n">}

How can I post a complex json object and images using multipart? Thanks for help

1 Answer 1

0

check once this code iam using this one for uploading images to server

HttpClient httpClient = new DefaultHttpClient(); HttpPost postRequest = new HttpPost(urls[0]); MultipartEntity multipartContent = new MultipartEntity(); for(int i=0;i<allimagespath.size();i++){ Bitmap bm = ShrinkBitmap(allimagespath.get(i), 140, 140); String format = allimagespath.get(i).substring((allimagespath.get(i).lastIndexOf(".")+1) , allimagespath.get(i).length()); Bitmap bit=Bitmap.createScaledBitmap(bm, 140, 140, true); ByteArrayOutputStream blob = new ByteArrayOutputStream(); if(format.equalsIgnoreCase("png")){ bit.compress(CompressFormat.PNG, 100 , blob); }else{ bit.compress(CompressFormat.JPEG, 100 , blob); } bitmapdata = blob.toByteArray(); ByteArrayBody thumbbmp = new ByteArrayBody(bitmapdata, "thumb."+format); FileBody bin2 = new FileBody(new File(allimagespath.get(i))); multipartContent.addPart("uploaded_file["+i+"]", bin2); multipartContent.addPart("uploaded_thumb["+i+"]", thumbbmp); } multipartContent.addPart("count", new StringBody(""+allimagespath.size())); postRequest.setEntity(multipartContent); HttpResponse response = httpClient.execute(postRequest); HttpEntity entity = response.getEntity(); is = entity.getContent(); 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.