羊蹓狼 发表于 2024-11-6 18:35:57

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));
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Java:获取HttpServletRequest请求参数