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

网站 组成深圳网络推广工资

网站 组成,深圳网络推广工资,视频网站 怎么做,手机上上建设网站背景 在一次业务开发中,由于需要在拦截器中对一个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.mnyf.cn/news/16776.html

相关文章:

  • 做论坛网站需要多少钱网站宣传费用
  • 跨境进口网站怎么做免费查权重工具
  • 网软志成学校网站管理系统官方商业正式版地推是什么
  • 网站乱码百度联盟app
  • 安康网站建设郑州seo优化外包热狗网
  • 企业做网站步骤热搜榜排名前十
  • cms系统表单广州seo软件
  • wordpress.org教程湖南正规seo公司
  • 修机械师怎么做我小样网站角仰望手机百度官网
  • 网站icp和公安备案怎么做神马搜索排名seo
  • 保亭住房和城乡建设局网站百度seo关键词排名查询工具
  • 淮南二中网站建设营销网站建设制作
  • 3e网站建设谷歌广告推广
  • 建站公司用的开源框架广州今日新闻头条新闻
  • 怎么做视频解析网站南宁关键词优化软件
  • wordpress账号分享内蒙古网站seo
  • 专做品质游的网站深圳广告公司
  • 哪里有免费的ppt模板下载网站磁力下载
  • 用flash做网站建设广州市疫情最新情况
  • 诚信建设网站的作用淘宝店铺怎么引流推广
  • 大淘客平台怎么做分销网站什么是软文
  • 遵义网上制作网站培训网站推荐
  • 网站建设如何提高转化率移动优化课主讲:夫唯老师
  • 域名官网注册橘子seo历史查询
  • 邯郸公司网站建设百度app关键词优化
  • 那些做电影的网站赚钱吗广告联盟平台挂机赚钱
  • 息壤网站模板海外推广渠道都有哪些
  • 百度注册公司地址seo经典案例分析
  • 云梦做网站郑州推广优化公司
  • 做网站导航的云南seo