扫码阅读
手机扫码阅读

JSON 数据读一次就没了,怎么办?

48 2024-11-28

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:JSON 数据读一次就没了,怎么办?
文章来源:
江南一点雨
扫码关注公众号

松哥正在录制TienChin项目视频教程,该项目基于Spring Boot和Vue3技术栈,旨在实现一个完成度超过90%的项目。本文分享了如何在服务端处理前端传来的JSON数据,特别是在需要多次读取IO流的场景下,如接口幂等性的处理。

通常,服务端通过IO流解析JSON数据,但IO流只能读取一次,之后就失效了。这在处理如接口幂等性时会带来问题,因为需要多次读取参数来进行判断。松哥通过TienChin项目演示了问题的出现,其中涉及到一个拦截器在拦截请求时预先读取了参数,导致后续的Controller中无法再次读取参数。

为了解决这个问题,可以利用装饰者模式增强HttpServletRequest的功能。通过创建一个RepeatedlyRequestWrapper类继承HttpServletRequestWrapper,并在构造时读取数据存入byte数组,重写getReader和getInputStream方法。这样,就可以从byte数组中反复读取IO流数据。随后,通过定义一个RepeatableFilter过滤器并配置,确保装饰后的Request在请求处理过程中生效。

这种方法使得JSON数据能够通过IO流被反复读取,以便在需要多次处理请求数据的场景下使用。松哥将在下篇文章中分享关于接口幂等性的处理方法。

想要了解更多内容?

查看原文:JSON 数据读一次就没了,怎么办?
文章来源:
江南一点雨
扫码关注公众号