不同请求类型的参数获取
我们可以通过
- request.getParameter
- 读取requust.inputStream
获取请求参数
get url参数 body中的参数
json getparameter只能获取url参数 只能通过inputStream获取body中的参数
form-data 两者都只能通过getParam获取 inputStream中获取不到body中的参数
x-www- getparam只能获取url参数,body里的不行 只能从inputStream中获取body中的参数
post
json getparam只能获取url参数 只能从inputStream获取
form-data 两者都只能通过getParam获取 从inputStream中获取不到
x-www- getparam可以获取url和body中的参数 只能从inputStream获取
1. 读取inputstream
String bodyStr = null;
BufferedReader br = request.getReader();
String str;
while ((str = br.readLine()) != null) {
bodyStr.append(str);
}
2.转成Map
content-type=application/json 时 , json转map
Map map = JSON.parseObject(body,Map.class);
content-type=application/json 时,k1=v1&k2=v2... 类型的字符串转map
Arrays.stream(body.split("&"))
.filter(kv -> kv.contains("="))
.map(kv -> kv.split("="))
.forEach(array -> {
map.put(array[0],array[1]);
});
request的inputStream只能读取一次,多次读取需要 重写HttpServletRequestWrapper
可参考: https://my.oschina.net/serge/blog/1094063

浙公网安备 33010602011771号