当前位置: 移动技术网 > IT编程>开发语言>Java > java 获取request中的请求参数代码详解

java 获取request中的请求参数代码详解

2019年07月19日  | 移动技术网IT编程  | 我要评论

春天在哪里的简谱,让田螺飞,大益普洱茶最新价格

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中的请求参数的代码详解,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网