单独写一个方法:
通过流去获取参数
public String getRequestPayloadParams(HttpServletRequest request){
HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper (request);
StringBuilder sb = new StringBuilder();
BufferReader br = null;
InputStreamReader isr = null;
ServletInputStream sis = null;
try{
sis = hsrw.getInputStream();
isr = new InputStreamReader(sir,Charset.forName("UTF-8"));
String line = "";
while((line=br.readLine())!=null){
sb.append(line);
}
}catch(Expection e){
e.printStackTrace()
}finally{
try{
if(sis!=null){
sis.close()
}
if(isr!=null){
isr.close()
}
if(br!=null){
br.close()
}
}catch(Expection e){
e.printStackTrace();
}
}
return sb.toString();
}
我们已经获取到了String格式的数据,
现在需要把它转换成json格式提取出来
MAVEN添加依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.3</version>
</dependency>
获取数据
public void getParam(HttpServletRequest request){
//通过上面写的方法获得String数据
String params = getRequestPayloadParams(request);
JsonParser jp = new JsonParser();
JsonObject jo = jp.parse(params).getAsJsonObject();
//获取数据
String username = jo.get("username").getAsString();
String password = jo.get("password").getAsString();
}
通过上面的方法,就可以获取前端传送过来的数据了。
哦对了,如果是空值,会报错。