当前位置: 首页 > news >正文

比购网选择宁波seo优化公司

比购网,选择宁波seo优化公司,网站备案号如何获得,中国门户网站有哪些背景 在一次业务开发中,由于需要在拦截器中对一个http请求中request body内容做解析和判断,所以用了httpServletRequest的getInputStream解析了request body内容,之后导致了拦截器处理成功后,原来的业务接口处报request body not…

背景

在一次业务开发中,由于需要在拦截器中对一个http请求中request body内容做解析和判断,所以用了httpServletRequest的getInputStream解析了request body内容,之后导致了拦截器处理成功后,原来的业务接口处报request body not found的错误。

原理

在使用Springboot开发restful接口的时候,@RequestBody将request body内容注入到参数里时内部是调用getInputStream()方法。getInputStream()对request body流进行读取,读取后流数据就没了,所以只能读取一次,拦截器先进行了读取,原来的业务接口就读取不到了。

解决方案

创建一个类BodyReaderHttpServletRequestWrapper,继承HttpServletRequestWrapper,重写getInputStream和getReader方法,在request.getInputStream之后保存请求体,之后业务代码就可以重复读request body了。

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import org.springframework.util.StreamUtils;
/**
*
* 从请求体中获取参数请求包装类:<br>
* @author nick
* @version 5.0 since 2018年9月5日
*/
public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapper{
private byte[] requestBody = null;//用于将流保存下来
public BodyReaderHttpServletRequestWrapper(HttpServletRequest request) throws IOException {
super(request);
requestBody = StreamUtils.copyToByteArray(request.getInputStream());
}
@Override
public ServletInputStream getInputStream() throws IOException {
final ByteArrayInputStream bais = new ByteArrayInputStream(requestBody);
return new ServletInputStream() {
@Override
public int read() throws IOException {
return bais.read();
}
@Override
public boolean isFinished() {
return false;
}
@Override
public boolean isReady() {
return false;
}
@Override
public void setReadListener(ReadListener readListener) {
}
};
}
@Override
public BufferedReader getReader() throws IOException{
return new BufferedReader(new InputStreamReader(getInputStream()));
}
}

http://www.zhongyajixie.com/news/14841.html

相关文章:

  • 石家庄网站制作公司抖音关键词排名查询
  • 配件网站模板seo排名优化培训网站
  • 公司网站建设如何做账seo就业前景
  • 专门做书单的网站seo搜索工具栏
  • 品牌建设的六个步骤seo教程百度网盘
  • 重庆有的设计网站大全常州谷歌推广
  • web制作网站链接买卖价格
  • 网站优化检测seo的优缺点
  • 微信做网站的弊端东营优化公司
  • 重庆网站建设 优化微信营销怎么做
  • 怎么做提升网站转化率网络营销需要学什么
  • barrager wordpress郑州推广优化公司
  • 国外做建材的网站有哪些中国职业培训在线官网
  • 云顶科技做网站的同城推广平台
  • 网站建设包括哪几个方面软文云
  • 网站建设设计服务网络平台有哪些
  • 做的好的食用菌公司网站有知名网络推广
  • 上海做设计公司网站小红书推广价目表
  • 怎么把做网站发给别人网络推广有几种方法
  • 做网站 警察网站建设方案范文
  • 松江营销型网站建设站长工具是什么
  • 手机网站建设免费百度seo优化方案
  • 北京旅游网页设计南京seo推广
  • 响应式网站 翻译二级域名注册平台
  • 聊城住房和城乡建设部网站搜索引擎优化排名技巧
  • 如何给自己网站做网站优化alexa
  • php小网站宁德市区哪里好玩
  • 建做网站seo网站关键词优化软件
  • 网站图片怎么做优化日本网络ip地址域名
  • 郴州网站建设培训国外搜索引擎网站