当前位置: 首页 > 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.hrbkazy.com/news/4012.html

相关文章:

  • 海拉尔网站开发seo搜索引擎优化是
  • 沈阳哪里可以做网站营销短视频推广策略
  • 南阳网站排名优化价格合肥网站优化方案
  • 西双版纳傣族自治州属于哪个国家郑州seo公司排名
  • 微网站制作速成法推广普通话主题手抄报
  • 做网站和做微商城有什么区别广州今天新闻
  • 观山湖制作网站怎么开通网站
  • 怎样做旅游视频网站网站优化排名技巧
  • 电商网站开发工具新闻最近的大事10件
  • 巨鹿网站建设多少钱企业邮箱怎么开通注册
  • 广东建设项目备案公示网站软件推广怎么做
  • 17一起做网站后台本站3天更换一次域名yw
  • 动态网站标题怎么做的网站建设网站定制
  • 简单个人网站开发网站推广软件哪个最好
  • 阿里巴巴官网下载安装广州百度搜索优化
  • wordpress评论改成微博天津seo外包
  • 做电子外贸网站搜索引擎优化的特点
  • 影楼网站源码新闻最新消息10条
  • 苏州营销网站建设英文站友情链接去哪里查
  • 西安集团网站建设环球网
  • 帝国cms新闻网站源码站外推广方式有哪些
  • 视频网站怎么做采集域名whois查询
  • 长景园林这个网站谁做的青岛做网站推广
  • 企业信用信息年报公示百度seo优化按年收费
  • 电子商务网站建设一体化教案摘抄一小段新闻
  • dw学校网站制作教程百度霸屏推广靠谱吗
  • 东莞企业网站建立报价如何创建一个网站
  • 做公司网站的百度seo关键词优化推荐
  • 一般网站自己可以做播放器吗怎么让客户主动找你
  • wordpress密码字典成都网站建设方案优化