Java:获取HttpServletRequest请求参数

打印 上一主题 下一主题

主题 1022|帖子 1022|积分 3066

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

一、概况

   在实际的开发应用当中,我们偶然必要开放一个公共的接口让第三方给我们推送数据,但是很多第三方厂家买的是别人的软件或者交接职员不是开发职员,没有程序源码,不知道推送的是什么格式的数据。
这就必要我们自己使用代码解析出来,在这里可以借用HttpServletRequest来解析字符串、JSON、XML以及文件数据等。
  二、程序源码

  1. @PostMapping("/push")
  2. public AjaxResult push(HttpServletRequest request) {
  3.     try {
  4.         String contentType = request.getContentType();
  5.         log.info(String.format("摄像头报警请求参数类型:%s", contentType));
  6.         if (contentType.contains("multipart/form-data;")) {
  7.             readFile(request);
  8.         } else {
  9.             readParams(request);
  10.         }
  11.         return success();
  12.     } catch (Exception e) {
  13.         return success();
  14.     }
  15. }
复制代码
读取文件参数
  1. public void readFile(HttpServletRequest request) {
  2.     log.info(String.format("摄像头报警请求参数:%s", "文件"));
  3.     // 由于HttpServletRequest不能直接取出文件数据,所以将其强制转换为MultipartHttpServletRequest
  4.     MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  5.     Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  6.     log.info(String.format("摄像头报警请求参数:%s", String.valueOf(fileMap)));
  7.     fileMap.forEach((key, value) -> {
  8.         try {
  9.             log.info(String.format("key:%s, value:%s", key, value.getName()));
  10.             String filePath = RuoYiConfig.getUploadPath();  // 上传文件路径
  11.             String fileName = FileUploadUtils.upload(filePath, value);
  12.             log.info(String.format("文件已经下载:%s", fileName));
  13.         } catch (IOException e) {
  14.             log.error(e.getMessage());
  15.             throw new RuntimeException(e);
  16.         }
  17.     });
  18. }
复制代码
读取非文件参数
  1. public void readParams(HttpServletRequest request) {
  2.      StringBuilder data = new StringBuilder();
  3.      String line;
  4.      BufferedReader reader;
  5.      try {
  6.          reader = request.getReader();
  7.          while (null != (line = reader.readLine())) {
  8.              data.append(line);
  9.          }
  10.      } catch (IOException e) {
  11.          log.error(e.getMessage());
  12.      }
  13.      log.info(String.format("摄像头报警请求参数:%s", data));
  14. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表