几品飞车|SpringBoot 拦截器获取http请求参数
本文作者:上帝爱吃苹果 本文链接:
获取http请求参数是一种刚需我想有的小伙伴肯定有过获取http请求的需要 , 比如想
- 前置获取参数 , 统计请求数据
- 做服务的接口签名校验
- 敏感接口监控日志
- 敏感接口防重复提交
定义拦截器获取请求基于 spring-boot-starter-parent 2.1.9.RELEASE
看起来这个很简单 , 这里就直接上code , 定义个拦截器
/** * @author axin * @summary HTTP请求拦截器 */@Slf4jpublic class RequestInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//获取请求参数String queryString = request.getQueryString();log.info("请求参数:{}", queryString);//获取请求bodybyte[] bodyBytes = StreamUtils.copyToByteArray(request.getInputStream());String body = new String(bodyBytes, request.getCharacterEncoding());log.info("请求体:{}", body);return true;}}然后把这个拦截器配置一下中:/** * WebMVC配置 , 你可以集中在这里配置拦截器、过滤器、静态资源缓存等 */@Configurationpublic class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new RequestInterceptor()).addPathPatterns("/**");}}定义个接口测试一下/** * @author axin * @summary 提交测试接口 */@Slf4j@RestControllerpublic class MyHTTPController {@GetMapping("/v1/get")public void get(@RequestParam("one") String one,@RequestParam("two") BigDecimal number) {log.info("参数:{},{}", one, number);}@PostMapping("/v1/post")public void check(@RequestBody User user) {log.info("{}", JSON.toJSONString(user));}}GET请求获取请求参数示例:推荐阅读
- ZAKER|柬埔寨两名飞车党抢劫失手遭民众痛殴!
- QQ飞车|宁清把云海压的“手抖”,QG无情零封AG,进总决赛有望蝉联 冠军
- 九游网|《QQ飞车》手游迪迦联动活动什么时候出 迪迦联动活动内容曝光
- 绝地养鸡王|《天天飞车》发布停服公告,看到补偿礼包后,老玩家“泪目”了!
- 几品飞车苹果火力全开,iPhone12五千多起步,国产旗舰压力巨大?
- 嘻哈飞车族腻害,高人都是这样玩SpringBoot整合RabbitMQ
- 几品飞车|Excel的数据可视化和Python的有什么不同?
- QQ飞车手游S联赛|季后赛|10月17日对阵看点 昨日精彩赛况回顾
- 嘻哈飞车族|“文案界扛把子”翻车了?,杜蕾斯文案再度引爆热议
- 几品飞车Excel的数据可视化和Python的有什么不同?
