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

相关内容

热门资讯

2分钟了解!方片十三张透视脚本... 2分钟了解!方片十三张透视脚本(辅助)决战血流开挂辅助辅助器-竟然有挂神器亲,关键说明,方片十三张透...
4分钟了解!优优龙岩麻将辅助器... 4分钟了解!优优龙岩麻将辅助器(辅助)乐友互娱开挂辅助修改器-确实真的是有插件1)优优龙岩麻将辅助器...
第九分钟了解!新悠悠手游辅助(... 第九分钟了解!新悠悠手游辅助(辅助)鸿运斗地主开挂辅助插件-确实真的是有插件1、操作简单,无需新悠悠...
三分钟了解!广东雀神智能插件免... 三分钟了解!广东雀神智能插件免费(辅助)青云开挂辅助安装-果然是真的神器1、完成广东雀神智能插件免费...
五分钟了解!jj斗地主捕鱼辅助... 五分钟了解!jj斗地主捕鱼辅助(辅助)天娱游戏开挂辅助修改器-果然真的有平台1、jj斗地主捕鱼辅助免...
两分钟了解!宁波同乡游辅助下载... 两分钟了解!宁波同乡游辅助下载(辅助)启东麻将开挂辅助安装-一直存在有下载1)宁波同乡游辅助下载辅助...
第七分钟了解!乐乐围棋入门脚本... 第七分钟了解!乐乐围棋入门脚本(辅助)欢游开挂辅助下载-原来真的有安装1、下载好乐乐围棋入门脚本脚本...
第4分钟了解!天天贵州万能辅助... 第4分钟了解!天天贵州万能辅助器(辅助)牛财神v5.0开挂辅助软件-一贯有挂神器1、每一步都需要思考...
4分钟了解!竞技联盟辅助(辅助... 4分钟了解!竞技联盟辅助(辅助)星悦山东麻将开挂辅助辅助-总是是真的平台1、这是跨平台的竞技联盟辅助...
1分钟了解!抓住捣蛋鸡开挂(辅... 1分钟了解!抓住捣蛋鸡开挂(辅助)新九五开挂辅助辅助-其实是有安装1、抓住捣蛋鸡开挂破解器简单,抓住...