春天在哪里的简谱,让田螺飞,大益普洱茶最新价格
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错误
总结
以上所述是小编给大家介绍的java 获取request中的请求参数的代码详解,希望对大家有所帮助
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论