用json对象android多部分图像上传

我想上传图片到服务器。

这里是代码,

  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);

}

但问题是jsonBodyPart包含斜杠。

请求这样的机构:

{ “数据”=> “{” 动作 “:” YENITALEP “ ”应用“:{ ”版本“: ”verisyon “}, ”数据“:{” 的发票 “:[{” imageName “:” 1395914025134 “ ”注“: ”“ ”类型“: ”FATURA “, ”typeNo “:” 0 “}],” 注 “:” ” “通知”:[{ “类型”: “?BeniArayñ”, “typeNo ”: “0 ”}] }, “设备”:{ “hardwareModel ”: “M7 ” “模型”: “HTC一个”, “systemVersion ”: “4.4.2 ”,” UID “:” 00000000-7f39-faab-b500-7f280e9b4fed “},” 时间戳 “:” 日期(1391073711000 + 0200) “}”, “1395914025134”=>#,@ original_filename =“1395914025134 .JPG “@ CONTENT_TYPE = ”图像/ JPG;字符集= UTF-8“,@标题= ”内容处置:形状数据;名称= “ 1395914025134 ”;文件名= “ 1395914025134.jpg ” r nContent-Type:image / jpg; charset = UTF-8 r nContent-Transfer-Encoding:binary r n“>}

如何使用多部分发布复杂的json对象和图像? 感谢帮助


检查一次这个代码我使用这一个上传图像到服务器

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(); 
链接地址: http://www.djcxy.com/p/75401.html

上一篇: android multipart image upload with json object

下一篇: No response data from image upload POST