Spring Boot 拦截器:修改 POST 请求 JSON 参数
可以通过重写 HandlerInterceptorAdapter 的 preHandle 方法来拦截 POST 请求,并对请求参数进行修改。具体步骤如下:
-
创建一个类,继承
HandlerInterceptorAdapter,并重写preHandle方法。 -
在
preHandle方法中,获取request对象,从中获取请求参数,并进行修改。 -
将修改后的参数重新设置到
request对象中。 -
返回
true,表示继续执行后续的处理器或拦截器;返回false,表示中断请求处理。
下面是一个示例代码:
public class JsonRequestHandlerInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (request.getMethod().equalsIgnoreCase("POST") && request.getContentType().contains("application/json")) {
String json = IOUtils.toString(request.getInputStream(), "UTF-8");
JSONObject jsonObj = new JSONObject(json);
jsonObj.put('newParam', 'newParamValue');
request.setAttribute("json", jsonObj.toString());
}
return true;
}
}
在上面的代码中,我们判断了请求方式为 POST,并且 Content-Type 包含 application/json,然后获取请求参数并转换为 JSONObject,对其进行修改,将修改后的参数重新设置到 request 对象中。最后,返回 true,表示继续执行后续的处理器或拦截器。在实际应用中,我们可以根据需要修改请求参数的类型和内容。
原文地址: https://www.cveoy.top/t/topic/n56P 著作权归作者所有。请勿转载和采集!