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

相关内容

热门资讯

六分钟知晓!手游游戏挂机辅助,... 六分钟知晓!手游游戏挂机辅助,微信小程序游戏破解器,微扑克教程(详细教程)-哔哩哔哩;是一款可以让一...
第九分钟带你发现!新518互游... 您好:新518互游脚本这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
第9分钟科普!wepoker是... 第9分钟科普!wepoker是不是有人用挂,德普软件,总结教程(有挂分享)-哔哩哔哩;最新软件透视开...
第四分钟带你开挂!对战互娱有辅... 第四分钟带你开挂!对战互娱有辅助吗,新荣耀平台辅助,技巧教程(有挂存在)-哔哩哔哩 【无需打开直接搜...
第九分钟普及!聚星ai辅助工具... 第九分钟普及!聚星ai辅助工具激活码,wepoker怎么买辅助,详细教程(有挂助手)-哔哩哔哩;大家...
2分钟带你开挂!浙江宝宝游戏辅... 您好:浙江宝宝游戏辅助工具这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
6分钟科普!老友跑得快辅助,三... 6分钟科普!老友跑得快辅助,三哥玩摆头挂,AA德州教程!(有人有挂)-哔哩哔哩;AI辅助机器人普及解...
五分钟带你透视!广东闲来有辅助... 五分钟带你透视!广东闲来有辅助软件,微信边锋辅助软件,必备教程(有挂神器)-哔哩哔哩【无需打开直接搜...
第六分钟熟悉!微乐小程序礼包码... 第六分钟熟悉!微乐小程序礼包码,八闽掌上辅助软件,教你攻略(有挂方法)-哔哩哔哩;微乐小程序礼包码简...
第七分钟带你辅助!决战十水三修... 第七分钟带你辅助!决战十水三修改器,四川游戏家园辅助软件下载,揭秘攻略(有挂教程)-哔哩哔哩四川游戏...