通过request来获取请求体中的json

主要是新增功能,然后无论失败或者成功都要存日志表,失败要存失败表

 @ApiOperation("新增数据")
    @PostMapping
    public R insert(@RequestBody CarInout carInout) {
    
    
        try {
    
    
            HttpServletRequest request = CommonUtil.getHttpRequest();
            Boolean save = carInoutService.save(carInout);
            apiLogService.saveLog(request);
            if (!save) {
    
    
                failRecordService.saveFail(request);
            }
            return save ? success("操作成功") : failed("操作失败");
        } catch (Exception e) {
    
    
            log.error(e.getMessage());
            return failed("服务器错误!");
        }
    }

保存日志与错误信息需要从request中获得json数据

 public void saveLog(HttpServletRequest request) throws IOException {
    
    
        ApiLog log = new ApiLog();
        BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
        StringBuilder responseStrBuilder = new StringBuilder();
        String inputStr;
        while ((inputStr = streamReader.readLine()) != null) {
    
    
            responseStrBuilder.append(inputStr);
        }
        streamReader.close();
        log.setPrimalityData(responseStrBuilder.toString());
        log.setSource("海康");
        log.setTime(new Date());
        this.save(log);
    }

以上通过request.getInputStream()来获取输入流以及new了一个InputStreamReader来将输入流的字节读取为字符流对象,再从字符输入流中读取文本,缓冲字符,最终得到一个输出缓冲流对象streamReader
最后再读取,就可以了

猜你喜欢

转载自blog.csdn.net/weixin_42260782/article/details/109809429