Java如何获取HttpServletRequest请求参数
一、概况
在实际的开发应用当中,我们有时需要开放一个公共的接口让第三方给我们推送数据,但是很多第三方厂家买的是别人的软件或者交接人员不是开发人员,没有程序源码,不知道推送的是什么格式的数据。
这就需要我们自己使用代码解析出来,在这里可以借用HttpServletRequest
来解析字符串、JSON、XML以及文件数据等。
二、程序源码
@PostMapping("/push") public AjaxResult push(HttpServletRequest request) { try { String contentType = request.getContentType(); log.info(String.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())); String filePath = RuoYiConfig.getUploadPath(); // 上传文件路径 String fileName = FileUploadUtils.upload(filePath, value); log.info(String.format("文件已经下载:%s", fileName)); } catch (IOException e) { log.error(e.getMessage()); throw new RuntimeException(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请求参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java中的三种校验注解的使用(@Valid,@Validated和@PathVariable)
本文主要介绍了Java中的三种校验注解的使用(@Valid,@Validated和@PathVariable),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-04-04Java Swing JToggleButton开关按钮的实现
这篇文章主要介绍了Java Swing JToggleButton开关按钮的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12Java中LinkedHashSet、LinkedHashMap源码详解
这篇文章主要介绍了Java中LinkedHashSet、LinkedHashMap源码详解,LinkedHashMap是一个以双向链表的方式将Entry节点链接起来的HashMap子类,它在HashMap的基础上实现了更多的功能,具有顺序存储和遍历的特性,需要的朋友可以参考下2023-09-09
最新评论