OA接收FORM_DATA格式的接口实例
作用:同时接收json参数和文件stream
1、代码示例
package com.test; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Path("/srm") public class ApiTest { @POST @Path("/saveOrUpdateGysfk") @Consumes(MediaType.MULTIPART_FORM_DATA) public String saveOrUpdateGysfk(@Context HttpServletRequest var1, @Context HttpServletResponse var2) throws IOException, FileUploadException { boolean isMultipart = ServletFileUpload.isMultipartContent(var1); if (isMultipart) { // 配置上传参数 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); int i = 0; ArrayList<String> arrayList = new ArrayList<String>(); String docID = ""; String requestid = ""; String maindate = ""; String userid = ""; HashMap<String, InputStream> stringInputStreamHashMap = new HashMap<>(); // 解析请求的内容提取文件数据 List<FileItem> formItems = upload.parseRequest(var1); if (formItems != null && formItems.size() > 0) { // 迭代表单数据 for (FileItem item : formItems) { // 处理不在表单中的字段(字节字段) if (!item.isFormField()) { String fileName = new File(item.getName()).getName(); stringInputStreamHashMap.put(fileName,item.getInputStream()); } // 处理表单字段 else { String name = item.getFieldName(); String value = new String(item.getString().getBytes("ISO8859_1"),"utf-8"); if("requestid".equals(name)){ requestid= value; } if("maindate".equals(name)){ maindate= value; } if("userid".equals(name)){ userid= value; } // ... 处理字段数据 // LogUtil.log("sap","sap").info("OcrCreateOa name:"+name); // LogUtil.log("sap","sap").info("OcrCreateOa value:"+value); } } } } return null; } }
2、请求示例