公司的Spring框架接受MIME类型为json格式的带null的字符串,然后这个带null的字段被自动忽略了,排查了好久
创始人
2024-11-15 16:05:45
0

接收方法:

解决方案:

先去掉@RequsetBody 因为使用@RequsetBody时,框架会调用HttpMessageConvert读取HttpRequest的InputStram反序列化为对象,这个InputStram只能读一次。 后续你的代码再通过Reader读输入流时,已经没有内容了,就会异常

然后用下面的方法手动去读http里面的字符串

   //这个方法不会用到公司的框架,很彻底的解决了问题    public String getRequestString(ApiReq apiReq, HttpServletRequest request) {         String body = "";         try (InputStream inputStream = request.getInputStream()) {             ByteArrayOutputStream outputStream = new ByteArrayOutputStream();             byte[] bytes = new byte[1024];             int len;             while ((len = inputStream.read(bytes)) != -1) {                 outputStream.write(bytes, 0, len);             }             body = outputStream.toString(request.getCharacterEncoding());         } catch (Exception e) {             e.printStackTrace();             // throw new BizException("M999", "华润通知读取失败:" + e.getMessage());         }         return body;     }      //这个方法会用到公司的框架     public String getRequestString2(ApiReq apiReq, HttpServletRequest request) {         StringBuilder body = new StringBuilder();         try (BufferedReader reader = request.getReader()) {             String line;             while ((line = reader.readLine()) != null) {                 body.append(line);             }         } catch (Exception e) {             e.printStackTrace();            // throw new BizException("M999", "华润通知读取失败:" + e.getMessage());         }         return body.toString();     }

最后用的getRequestString方法,可以接受MIME为 json和Text 以及其他格式的字符串且不会自动忽略null

相关内容

热门资讯

八分钟熟悉!智星菠萝辅助,德州... 八分钟熟悉!智星菠萝辅助,德州辅助工具到底怎么样(透视)详细教程(有挂方法)1、打开软件启动之后找到...
5分钟体悟!德州ai辅助手机可... 5分钟体悟!德州ai辅助手机可以打吗(透明挂黑科技)外挂透明挂辅助透视(2024已更新)(哔哩哔哩)...
玩家必备教程!WePoKe辅助... 玩家必备教程!WePoKe辅助多久会检测到,德扑之星,第三方教程(有挂方法)-哔哩哔哩相信很多朋友都...
今日科普!(nzt德州)外挂透... 今日科普!(nzt德州)外挂透明挂ai代打辅助器安装!(德州手机辅助软件)教你攻略(2021已更新)...
5分钟指导!来玩app破解版,... 5分钟指导!来玩app破解版,智星菠萝可以辅助吗(透视)2025新版教程(有挂方法)1、在智星菠萝可...
6分钟神器!德州ai软件(透明... 6分钟神器!德州ai软件(透明挂黑科技)外挂透明挂辅助神器(2025已更新)(哔哩哔哩);是一款可以...
三分钟了解!微扑克ai代打,德... 三分钟了解!微扑克ai代打,德扑之星软件有猫腻,存在挂教程(有挂技巧)-哔哩哔哩;1、点击下载安装,...
黑科技插件!(wpk一直输)外... 黑科技插件!(wpk一直输)外挂透视透明挂辅助科技!(德扑分析软件)我来教教你(2022已更新)(哔...
两分钟俱乐部!菠萝德州透视脚本... 两分钟俱乐部!菠萝德州透视脚本,wepoker私人辅助器(透视)必赢方法(有挂详细)1)菠萝德州透视...
四分钟科普!wpk透视辅助可测... 您好,wpk透视辅助可测试真的这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很...