java request 获取_java 获取request中的请求参数

1、get 和 post请求方式

(1)request.getParameterNames(); 获取所有参数key后。遍历request.getParameter(key)获取value

(2)request.getParameterMap() 。直接包含参数key和value值,简单方便

Mapmaps =request.getParameterMap();for (Map.Entryentry : maps.entrySet()) {

String cs= entry.getKey() + ":"+Arrays.toString(entry.getValue())+";";

}

2、获取请求类型为request  payload方式

这里就不介绍文件流的了,主要针对 后端采用@RequestBody方式的请求

这类数据通过以上2种方式是获取不到的,它是存放在流里面,要通过getInputStream()或getReader()方式获取

publicString getRequestData(HttpServletRequest httpServletRequest){

HttpServletRequestWrapper httpServletRequestWrapper= newHttpServletRequestWrapper(httpServletRequest);

StringBuilder sb= newStringBuilder();

BufferedReader reader= null;

InputStreamReader inputStreamReader=null;

ServletInputStream servletInputStream=null;try{

servletInputStream=httpServletRequestWrapper.getInputStream();

inputStreamReader=new InputStreamReader (servletInputStream, Charset.forName("UTF-8"));

reader= newBufferedReader(inputStreamReader);

String line= "";while ((line = reader.readLine()) != null) {

sb.append(line);

}

}catch(IOException e) {return "";

}finally{try{if(servletInputStream!=null){

servletInputStream.close();

}if(inputStreamReader!=null){

inputStreamReader.close();

}if(reader!=null){

reader.close();

}

}catch(IOException e) {

}

}returnsb.toString ();

}

需要注意的是getInputStream()这种获取流的方式  只能用一次,如果多次调用  需要缓存起来,不然流的数据到不了Controller层,报400错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值