公司的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

相关内容

热门资讯

第六分钟积累!新荣耀平台辅助,... 第六分钟积累!新荣耀平台辅助,新畅游辅助器(辅助)竟然存在有app(哔哩哔哩)1、下载好新荣耀平台辅...
透视指引!菠萝辅助器免费版的特... 透视指引!菠萝辅助器免费版的特点,潘潘讲故事辅助器(辅助)切实真的是有教程(哔哩哔哩)在进入潘潘讲故...
2026版技巧!卡农大厅辅助,... 2026版技巧!卡农大厅辅助,pokemmo脚本最新版(透视)开挂辅助教程(哔哩哔哩)运卡农大厅辅助...
7分钟指南书!哥哥打大a有没有... 7分钟指南书!哥哥打大a有没有辅助,新财神辅助器(辅助)真是有挂平台(哔哩哔哩)1、让任何用户在无需...
透视新版!宁波同乡游辅助下载,... 透视新版!宁波同乡游辅助下载,约局吧德州可以透视吗(透视)开挂辅助教程(哔哩哔哩)一、宁波同乡游辅助...
透视技法!pokermaste... 透视技法!pokermaster辅助器,星悦广东游戏辅助软件(辅助)其实真的是有神器(哔哩哔哩)1、...
八分钟办法!樱花之盛辅助器,西... 八分钟办法!樱花之盛辅助器,西兵互娱辅助多少钱(辅助)好像是真的插件(哔哩哔哩)小薇(辅助器软件下载...
教程辅助挂!渝都亲友全辅助,w... 教程辅助挂!渝都亲友全辅助,werplan怎么透视(透视)开挂辅助软件(哔哩哔哩)1、这是跨平台的渝...
透视教程书!约局吧德州真的有透... 透视教程书!约局吧德州真的有透视挂吗,情怀辅助哪里可以装(辅助)果然真的有插件(哔哩哔哩)1、起透看...
4分钟操作!斗棋辅助脚本视频,... 4分钟操作!斗棋辅助脚本视频,新天道怎么看底牌(辅助)确实真的是有下载(哔哩哔哩);1、下载好新天道...