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

【POST multipart/form-data 上传多个文件】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(); }

    推荐阅读