一、概况
在实际的开发应用当中,我们有时需要开放一个公共的接口让第三方给我们推送数据,但是很多第三方厂家买的是别人的软件或者交接人员不是开发人员,没有程序源码,不知道推送的是什么格式的数据。
这就需要我们自己使用代码解析出来,在这里可以借用HttpServletRequest
来解析字符串、jsON、XML以及文件数据等。
二、程序源码
@PostMapping("/push") public AJAXResult push(HttpServletRequest request) {js try { String contentType = request.getContentType(); log.info(Strinphpg.format("摄像头报警请求参数类型:%s", contentType)); if (contentType.contains("multipart/form-data;")) { readFile(request); } else { readParams(request); } return success(); } catch (Exception e) { return success(); } }
读取文件参数
public void readFile(HttpServletRequest request) { log.info(String.format("摄像头报警请求参数:%s", "文件")); // 由于HttpServletRequest不能直接取出文件数据,所以将其强制转换为MultipartHttpServletRequest MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); log.info(String.format("摄像头报警请求参数:%s", String.valueOf(fileMap))); fileMap.forEach((key, value) -> { try { log.info(String.format("key:%s, value:%s", key, value.getName())); bXSsL String filePath = RuoYiConfig.getUploadPath(); // 上传文件路径 String fileName = FileUploadUtils.upload(filePath, value); log.info(String.format("文件已经下载:%s", fileName)); } catch (IOException e) { log.androiderror(e.getMessage()); throw new RuntimeExceptandroidion(e); } }); }
读取非文件参数
public void readParams(HttpServletRequest request) { StringBuilder data = new StringBuilder(); String line; BufferedReader reader; try { reader = request.getReader(); while (null != (line = reader.readLine())) { data.append(line); } } catch (IOException e) { log.error(e.getMessage()); } log.info(String.format("摄像头报警请求参数:%s", data)); }
到此这篇关于Java如何获取HttpServletRequest请求参数的文章就介绍到这了,更多相关Java HttpServletRequest请求参数内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论