java springmvc/springboot 项目通过HttpServletRequest对象获取请求体body工具类

请求

在这里插入图片描述

测试接口

在这里插入图片描述

获取到的

获取到打印出的json字符串里有空格这些,在json解析的时候正常解析为json对象了。
在这里插入图片描述

工具类代码


import lombok.extern.slf4j.Slf4j;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;/*** @author humorchen* date: 2024/2/27* description: 请求工具**/
@Slf4j
public class RequestUtil {/*** 获取当前请求** @return*/public static HttpServletRequest getCurrentRequest() {ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();if (requestAttributes != null) {return requestAttributes.getRequest();}return null;}/*** 获取请求body** @param request* @return*/public static String getRequestBody(HttpServletRequest request) {// 获取request这个请求的请求body字符串StringBuilder stringBuilder = new StringBuilder();BufferedReader bufferedReader = null;try {bufferedReader = request.getReader();String line;while ((line = bufferedReader.readLine()) != null) {stringBuilder.append(line);}} catch (Exception e) {log.error("获取请求body异常:" + e.getMessage());} finally {if (bufferedReader != null) {try {bufferedReader.close();} catch (Exception e) {log.error("关闭bufferedReader异常:" + e.getMessage());}}}return stringBuilder.toString();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/495890.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4核8G服务器并发数多少?性能如何?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

OpenCV与AI深度学习 | 使用YOLOv8做目标检测、实例分割和图像分类(包含实例操作代码)

本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:使用YOLOv8做目标检测、实例分割和图像分类 0 导 读 本文主要介绍YOLOv8及使用它做目标检测、实例分割和图像分类演示,仅供参考。…

vue项目从后端下载文件显示进度条或者loading

//API接口 export const exportDownload (params?: Object, peCallback?: Function) > {return new Promise((resolve, reject) > {axios({method: get,url: ,headers: {access_token: ${getToken()},},responseType: blob,params,onDownloadProgress: (pe) > {peC…

分布式锁的应用与疑惑

文章目录 一、为什么需要用分布式锁二、Redis实现分布式锁三、Zookeeper实现分布式锁 一、为什么需要用分布式锁 集群下,普通的锁,无法解决问题 集群下,保证安全需要使用分布式锁 二、Redis实现分布式锁 Redisson内部封装的RedLock实现分…

强大的Docker入门知识

目录 一、Docker简介 1.1、Docker是 1.2、Docker通常会在以下情况下使用: 1.3、Docker和VMware区别 1.4、Docker 的优点 二、环境配置 2.1、代码操作 2.2、效果演示 2.3、配置镜像仓库 开始配置 三、基本命令 3.1、Docker基本命令 3.2、Docker镜像常用…

生物制药污废水处理需要哪些工艺设备

生物制药行业是一种高度技术化的行业,同时也是一种高度污染的行业。生物制药厂的废水中常含有大量的有机物、重金属离子和其他有害物质,对环境造成了严重的污染。因此,进行生物制药污废水处理,需要采用一系列的工艺设备来处理废水…

在PyCharm中使用Git

安装Git CMD检查Git版本 打开cmd,输入git version,检查当前下载版本 配置git的user信息 在cmd中输入 git config --global user.name "用户名"git config --global user.email "用户邮箱"输入:git config --list&…

【自然语言处理三-self attention自注意是什么】

自然语言处理三-自注意力 self attention 自注意力是什么?自注意力模型出现的原因是什么?词性标注问题解决方法1-扩展window,引用上下文解决方法2-运用seq2seq架构新问题来了:参数量增加、无法并行的顽疾 自注意力self attention模…

《Large Language Models for Generative Information Extraction: A Survey》阅读笔录

论文地址:Large Language Models for Generative Information Extraction: A Survey 前言 映像中,比较早地使用“大模型“”进行信息抽取的一篇论文是2022年发表的《Unified Structure Generation for Universal Information Extraction》,也…

大数据集群管理软件 CDH、Ambari、DataSophon 对比

文章目录 引言工具介绍CDHAmbariDataSophon 对比分析 引言 大数据集群管理方式分为手工方式和工具方式,手工方式一般指的是手动维护平台各个组件,工具方式是靠大数据集群管理软件对集群进行管理维护。本文针对于常见的方法和工具进行比较,帮助…

聊聊最近几款非常流行的勒索病毒

前言 2020年勒索病毒攻击比以往都来的更猛了一点,各种不同的勒索病毒黑客组织都似乎加大了这方面的投入,而且又有一些新的黑客组织加入进来,导致现在勒索病毒攻击越来越频繁了,最近几款流行的勒索病毒都非常活跃,经常…

Redisson 3.18.0版本解决failover相关问题

前言 Redisson 在历史多个版本都出现了failover期间报错的问题并且目前没有一个版本可以完全解决这个问题,所以在当前使用版本3.18.0基础上做了二次开发,达到降低业务由于redis遇到问题导致不可用。 背景 Redisson 作为业务线使用的Redis 客户端&…