POST multipart/form-data 上传多个文件

来源:互联网 发布:重庆外包seo找谁好 编辑:程序博客网 时间:2024/05/17 01:23

POST multipart/form-data 上传多个文件
httpmime-4.3.6

CloseableHttpClient httpClient = HttpClients.createDefault();                  URIBuilder uri = new URIBuilder();                uri.setScheme("http").setHost("127.0.0.1").setPort(8000).setPath("/_upload");                uri.setParameter("containOriFile", textMap.get("containOriFile"));                uri.setParameter("ticket", tickets);                JSONObject json = JSONObject.fromObject(sample);//将java对象转换为json对象                String str = json.toString();//将json对象转换为字符串                byte[] bytes=str.getBytes("UTF-8");                try {                    Logger.info("1****************"+uri);                    HttpPost post=new HttpPost(uri.build());                    MultipartEntityBuilder entityBuilder=MultipartEntityBuilder.create();                    ContentBody contentBody=new ByteArrayBody(bytes, ContentType.APPLICATION_OCTET_STREAM, fileName);                    entityBuilder.addPart("metaFile", contentBody);                    for (int i = 1; i < file_list.size(); i++) {                        File file=new File(imagePaths+file_list.get(i).name);                        FileBody fileBody=new FileBody(file,  ContentType.APPLICATION_OCTET_STREAM, file.getName());                        entityBuilder.addPart("oriFile", fileBody);                    }                    HttpEntity entity=entityBuilder.build();                    post.setEntity(entity);                    Logger.info("2****************"+post);                    CloseableHttpResponse response =httpClient.execute(post);                    Logger.info("3****************"+response.getStatusLine().getStatusCode());                    if(response.getStatusLine().getStatusCode()==200){                          System.out.println(EntityUtils.toString(response.getEntity()));                          //以下这种方式读取流也可以,只不过用EntityUtils会更方便                          /*InputStream is = response.getEntity().getContent();                         ByteArrayOutputStream os = new ByteArrayOutputStream();                         byte[] buffer = new byte[1024];                         int len=-1;                         while((len = is.read(buffer))!=-1){                             os.write(buffer,0,len);                         }                         os.close();                         is.close();                         System.out.println(os.size()+new String(os.toByteArray(),"utf-8"));*/                      }                  } catch (URISyntaxException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }
原创粉丝点击