从HttpServletRequest中读取url和参数

1. URL:

String url = request.getRequestURI();

2. 请求方式:

String method = request.getMethod();

 

3. 跟在url后面的参数:

String param = request.getQueryString();   该方法获取到的参数,部分字符是经过转义的,如"<"转义成"%3C"等。

另外一种方法:

Map params = request.getParameterMap();

for (Map.Entry 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 异常。 

你可能感兴趣的:(micro,service)