java 获取request中的请求参数
2024-08-28 14:21:37
1、get 和 post请求方式
(1)request.getParameterNames(); 获取所有参数key后。遍历request.getParameter(key)获取value
(2)request.getParameterMap() 。直接包含参数key和value值,简单方便
Map<String, String[]>maps = request.getParameterMap(); for (Map.Entry<String, String[]> entry : maps.entrySet()) {
String cs = entry.getKey() + ":"+Arrays.toString(entry.getValue())+";";
}
2、获取请求类型为request payload方式
这里就不介绍文件流的了,主要针对 后端采用@RequestBody方式的请求
这类数据通过以上2种方式是获取不到的,它是存放在流里面,要通过getInputStream()或getReader()方式获取
public String getRequestData(HttpServletRequest httpServletRequest){
HttpServletRequestWrapper httpServletRequestWrapper = new HttpServletRequestWrapper(httpServletRequest);
StringBuilder sb = new StringBuilder();
BufferedReader reader = null;
InputStreamReader inputStreamReader=null;
ServletInputStream servletInputStream =null;
try {
servletInputStream = httpServletRequestWrapper.getInputStream();
inputStreamReader=new InputStreamReader (servletInputStream, Charset.forName("UTF-8"));
reader = new BufferedReader(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) { }
}
return sb.toString ();
}
需要注意的是getInputStream()这种获取流的方式 只能用一次,如果多次调用 需要缓存起来,不然流的数据到不了Controller层,报400错误
最新文章
- CSS笔记
- 查询oracle数据库,返回的数据是乱码。 PL/SQL正常。
- 2016暑假多校联合---GCD
- asp.net mvc 简单文件下载
- [css]【转载】CSS样式分离之再分离
- django models 建立好后,table也创建成功了,为什么网页后台不显示的问题
- CodeForces 164A Variable, or There and Back Again 搜索
- linux cmake 安装mysql5.5.11,以及更高版本
- android 关于提高第三方app的service优先级
- XCOPY: Access denied
- mysql 学习(1)
- php中遍历数组的方法
- IOS --- 日期时间格式 更改
- 【 js 基础 】【 源码学习 】backbone 源码阅读(一)
- Alpha冲刺No.9
- api-gateway实践(15)3.6JL分支和3.7并行改造需求
- [Openwrt 项目开发笔记]:DDNS设置(五)
- mysql.sock文件丢失被删除解决方法
- Spring cloud Zuul网关异常处理
- python 锁 信号量 事件 队列
热门文章
- jquery——尺寸
- [PHP]php发布和调用Webservice接口的案例
- [知乎作答]&#183;关于在Keras中多标签分类器训练准确率问题
- 实现多行文字居中方法(兼容IE6)
- .NET导出excel方法
- 在java.ext.dirs中使用环境变量导致crontab执行不成功的问题及解决
- 进程的基础理论、并发(multiprocessing模块)
- 【干货】JavaScript DOM编程艺术学习笔记1-3
- 独立安装Oracle Hyperion Enterprise Performance Management 验证过程
- w3cschool中jQuery测试结果总结