1. URL:
String url = request.getRequestURI();
2. 请求方式:
String method = request.getMethod();
3. 跟在url后面的参数:
String param = request.getQueryString(); 该方法获取到的参数,部分字符是经过转义的,如"<"转义成"%3C"等。
另外一种方法:
Map<String, String[]> params = request.getParameterMap();
for (Map.Entry<String, String[]> param : map.entrySet()) {
String key = param.getKey(); // 参数名
String value = StringUtils.join(param.getValue()); // 参数值
}
4. 在body体中的参数:
/**
* 从body中获取参数
*
* @param request
* @return
*/
private String getBodyData(HttpServletRequest request) {
BufferedReader reader = null;
StringBuffer data = new StringBuffer();
try {
String line = "";
reader = request.getReader();
while (null != (line = reader.readLine())) {
data.append(line);
}
} catch (IOException e) {
log.error("get request params error: ", e);
} finally {
if(null == reader) {
try {
reader.close();
} catch (IOException e) {
log.error("close BufferedReader error: ", e);
}
}
}
return data.toString();
}
注:HttpServletRequest 请求中的 body 内容仅能调用 request.getInputStream(), request.getReader()方法读取一次,
重复读取会报 java.io.IOException: Stream closed 异常。