SpringBoot 项目如何 查看 request 请求参数内容

发布于:2024-05-14 ⋅ 阅读:(27) ⋅ 点赞:(0)

工具类,获取请求的 body 体

import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;

/**
 * HttpContextUtils 
 *
 * @author liziye
 */
public class HttpContextUtils {
	
	/**
	 * 获取query参数
	 * @param request
	 * @return
	 */
	public static Map<String, String> getParameterMapAll(HttpServletRequest request) {
		Enumeration<String> parameters = request.getParameterNames();

		Map<String, String> params = new HashMap<>();
		while (parameters.hasMoreElements()) {
			String parameter = parameters.nextElement();
			String value = request.getParameter(parameter);
			params.put(parameter, value);
		}

		return params;
	}

	/**
	 * 获取请求Body
	 *
	 * @param request
	 * @return
	 */
	public static String getBodyString(ServletRequest request) {
		StringBuilder sb = new StringBuilder();
		InputStream inputStream = null;
		BufferedReader reader = null;
		try {
			inputStream = request.getInputStream();
			reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
			String line = "";
			while ((line = reader.readLine()) != null) {
				sb.append(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return sb.toString();
	}
}
 @RequestMapping(value = "/**", method = RequestMethod.POST)
    public RestResponse xxxx(HttpServletRequest request) {
           log.info("Request =>  {}", HttpContextUtils.getBodyString(request));
    }

####### 参考 :SpringBoot 项目里如何在拦截器中获取@RequestBody 参数


网站公告

今日签到

点亮在社区的每一天
去签到