Web请求与响应
目录
Postman
Postman简介
Postman的使用
请求
简单参数
实体参数
数组参数
集合参数
日期参数
Json参数
路径参数
响应
@ResponseBody
统一响应结果
Postman
Postman简介
postman是一款功能强大的网页调试与发送网页http请求的Chrome插件,常用于进行接口测试。
Postman的使用
先创建用户

之后通过刚刚创建的用户登录
创建工作空间



创建完成后他会自动进入到springbootweb工作空间
点击+添加新请求

请求
pom.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.he1220</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
简单参数
以原始的方式接收请求参数
目录结构如下

RequestController.java文件内容如下
package com.he1220.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@RestController
public class RequestController {@RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){String name = request.getParameter("name");String age = request.getParameter("age");System.out.println(name);System.out.println(age);return "ok";}
}
测试结果如下


以SpringBoot的方式接收请求参数
package com.he1220.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {@RequestMapping("/simpleParam")public String simpleParam(String name,Integer age){System.out.println(name);System.out.println(age);return "ok";}
}
如果方法形参名称与请求参数名称不匹配,可以通过@RequestParam注解完成映射
通过name属性指定请求参数名
@RequestParam中的Required属性默认为true,该请求参数必须传递,不传递将报错(400)。可以设置为false
package com.he1220.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {@RequestMapping("/simpleParam")public String simpleParam(@RequestParam(name="name")String username,Integer age){System.out.println(username);System.out.println(age);return "ok";}
}

实体参数
需要保证请求参数名与形参对象属性名一致
目录结构如下

RequestController.java内容如下
package com.he1220.demo.controller;import com.he1220.demo.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {@RequestMapping("/Pojo")public String Pojo(User user){System.out.println(user);return "ok~";}
}
User.java内容如下
package com.he1220.demo.pojo;public class User{private String name;private String age;private Add add;public User(String name, String age) {this.name = name;this.age = age;}public Add getAdd() {return add;}public String getName() {return name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public void setName(String name) {this.name = name;}public void setAdd(Add add) {this.add = add;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age='" + age + '\'' +", add=" + add +'}';}
}
Add.java内容如下
package com.he1220.demo.pojo;public class Add {private String province;private String city;public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}@Overridepublic String toString() {return "Add{" +"province='" + province + '\'' +", city='" + city + '\'' +'}';}
}
测试结果如下


数组参数
RequestController.java内容如下
package com.he1220.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;@RestController
public class RequestController {@RequestMapping("/arrParam")public String arrParam(String[] hobby){System.out.println(Arrays.toString(hobby));return "ok~";}
}
测试结果如下


集合参数
需要保证请求的参数名与集合变量名相同,通过@RequestParam注解绑定参数关系
RequestController.java内容如下
package com.he1220.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;@RestController
public class RequestController {@RequestMapping("/listParam")public String listParam(@RequestParam List<String> hobby){System.out.println(hobby);return "ok~";}
}

日期参数
使用@DateTimeFormat 注解完成日期参数格式转换
package com.he1220.demo.controller;import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.time.LocalDateTime;@RestController
public class RequestController {@RequestMapping("/dateParam")public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "ok~";}

Json参数
通过@RequestBody注解将Json对象封装到实体类当中
package com.he1220.demo.controller;import com.he1220.demo.pojo.User;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {@RequestMapping("/jsonParam")public String jsonParam(@RequestBody User user){System.out.println(user);return "ok~";}
}

路径参数
通过请求URL直接传递参数,使用{...}来标识该参数路径,需要使用@PathVariable获取参数路径
@RestController
public class RequestController {@RequestMapping("/path/{id}/{name}")public String pathParam(@PathVariable Integer id,@PathVariable String name){System.out.println(id + name);return "ok~";}
}

响应
@ResponseBody
放在Controller方法上/类上
将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为JSON格式响应
@RestController = @Controller + @ResponseBody
统一响应结果
目录结构如下

pojo.Result.java文件内容如下
package com.he1220.demo.pojo;/*** 统一响应结果封装类*/
public class Result {private Integer code ;//1 成功 , 0 失败private String msg; //提示信息private Object data; //数据 datapublic Result() {}public Result(Integer code, String msg, Object data) {this.code = code;this.msg = msg;this.data = data;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}public static Result success(Object data){return new Result(1, "success", data);}public static Result success(){return new Result(1, "success", null);}public static Result error(String msg){return new Result(0, msg, null);}@Overridepublic String toString() {return "Result{" +"code=" + code +", msg='" + msg + '\'' +", data=" + data +'}';}
}
RequestController.class内容如下
package com.he1220.demo.controller;import com.he1220.demo.pojo.Add;
import com.he1220.demo.pojo.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class RequestController {@RequestMapping("/getAddr")public Result getAddr(String province, String city){System.out.println(province);System.out.println(city);Add addr = new Add();addr.setProvince(province);addr.setCity(city);return Result.success(addr);}
}
测试结果如下
相关文章:
Web请求与响应
目录 Postman Postman简介 Postman的使用 请求 简单参数 实体参数 数组参数 集合参数 日期参数 Json参数 路径参数 响应 ResponseBody 统一响应结果 Postman Postman简介 postman是一款功能强大的网页调试与发送网页http请求的Chrome插件,常用于进行…...
ADS学习笔记(一)——更新中
在ADS中,信号上升时间为信号从0~100%所用的时间,而实际上定义的上升边均为10%~90%,所以可以认为上升边=0.8*ADS设置上升时间。 一、终端开路及短路的反射信号 1.仿真条…...
智能优化算法应用:基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.冠状病毒群体免疫算法4.…...
小型气象站是什么?
随着科技的发展,我们的生活变得越来越便捷。如今,一款名为小型气象站的新兴设备正在逐渐走进我们的生活,为我们的日常生活增添了更多的便利和舒适。 WX-CQ12小型气象站是一种集成了多种传感器和数据采集技术的智能设备,可以实时监…...
官方指定Jmeter配置JVM堆内存方式
1.概述 在使用Jmeter做性能测试过程中,可能会应为默认设置的堆内存值较小出现堆内存溢出问题,此时解决的方式有两种,分布式测试和调大堆内存。下面介绍官方推荐调整堆内存方法。 2.调整Jmeter堆内存 2.1.介绍官方推荐堆内存调整方法(jmete…...
spark-常用算子
一,Transformation变换/转换算子: 这种变换并不触发提交作业,这种算子是延迟执行的,也就是说从一个RDD转换生成另一个RDD的转换操作不是马上执行,需要等到有Action操作的时候才会真正触发。 1.Value数据类型的Transf…...
《opencv实用探索·二十一》人脸识别
Haar级联分类器 在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。用的最多的是Haar特征人脸检测。 Haar级联分类器是一种用于目标检测的机器学习方法,它是一种基于机器学习的特征选择方法,…...
前端项目配置下载源npm, yarn,pnpm
前端项目配置下载源 npm: npm config set registry registryhttps://registry.npmmirror.com -g验证: npm config get registry yarn: yarn config set registry registryhttps://registry.npmmirror.com -gyarn config get registryyarn找不到, 需要管理员在命令行: set-exec…...
Elasticsearch之ik中文分词篇
Elasticsearch之ik中文分词篇 ik分词器插件ik分词器安装ik分词模式es ik分词测试 ik分词器插件 es在7.3版本已经支持中文分词,由于中文分词只能支持到单个字进行分词,不够灵活与适配我们平常使用习惯,所以有很多对应中文分词出现,…...
2023_Spark_实验三十:测试Flume到Kafka
实验目的:测试Flume采集数据发送到Kafka 实验方法:通过centos7集群测试,将flume采集的数据放到kafka中 实验步骤: 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…...
urllib2 HTTP头部注入
文章目录 注入原理例题 [SWPU 2016]web7 注入原理 参考文章 应用场景是具有SSRF漏洞,结合CRLF注入 我们以redis数据库为例,当存在SSRF时我们伪造以下请求 http://127.0.0.1%0d%0aCONFIG%20SET%20dir%20%2ftmp%0d%0aCONFIG%20SET%20dbfilename%20evil%…...
在 WebRTC 中,Offer/Answer 模型是协商 WebRTC 连接参数的关键部分
在 WebRTC 中,Offer/Answer 模型是协商 WebRTC 连接参数的关键部分。当 Offer 和 Answer 交换失败时,可能涉及到多个原因。以下是一些可能的问题和解决方案: SDP 格式错误: Session Description Protocol(SDPÿ…...
数据结构:图解手撕B-树以及B树的优化和索引
文章目录 为什么需要引入B-树?B树是什么?B树的插入分析B树和B*树B树B*树分裂原理 B树的应用 本篇总结的内容是B-树 为什么需要引入B-树? 回忆一下前面的搜索结构,有哈希,红黑树,二分…等很多的搜索结构&a…...
useConsole的封装,vue,react,htmlscript标签,通用
之前用了接近hack的方式实现了console的封装,目标是获取console.log函数的执行(调用栈所在位置)所在的代码行数。 例如以下代码,执行window.mylog(1)时候,console.log实际是在匿名的箭头函数()>{//这里执行的} con…...
Azure Machine Learning - 提示工程高级技术
本指南将指导你提示设计和提示工程方面的一些高级技术。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,…...
七款创意项目管理软件解决方案推荐:高效项目管理与团队协作工具
企业无论大小,都离不开项目经理、营销团队和创意人员。他们参与各种头脑风暴,为特定目标打造项目。然而,在创意项目管理中,细节决定成败。若处理不当,可能导致项目失败和混乱。 过去,创意项目管理依赖纸质规…...
如何在公网环境下使用Potplayer访问本地群晖webdav中的影视资源
文章目录 本教程解决的问题是:按照本教程方法操作后,达到的效果是:1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透,映射至公网4 使用固定地址在potplayer访问webdav 国内流媒体平台的内…...
数据可视化Seaborn
数据可视化Seaborn Seaborn简介Seaborn API第一个Seaborn应用Seaborn基本概念Seaborn图表类型Seaborn数据集Seaborn样式Seaborn调色板Seaborn分面网格Seaborn统计图表Seaborn散点图Seaborn折线图Seaborn柱状图Seaborn箱线图Seaborn核密度估计图Seaborn分类散点图Seaborn回归分…...
AWS S3相关配置笔记
关闭 阻止所有公开访问 存储桶策略(开放外部访问) {"Version": "2012-10-17","Id": "S3PolicyId1","Statement": [{"Sid": "statement1","Effect": "Allow","Principal"…...
linux:linux的小动物们(ubuntu)
1.蒸汽小火车 输入下面的命令下载,再输出sl sudo apt-get install sl sl2.今天你哞了吗 apt-get moo 3.会说话的小牛 输入下面的命令下载一下 sudo apt-get install cowsay输入这个 cowsay jianbing cowsay -l 查看其它动物的名字 然后cowsay -f 跟上动物名&…...
丹青幻境GPU优化:Bfloat16混合精度下Z-Image推理速度提升47%
丹青幻境GPU优化:Bfloat16混合精度下Z-Image推理速度提升47% "见微知著,凝光成影。执笔入画,神游万象。" 丹青幻境 是一款基于 Z-Image 架构与 Cosplay LoRA 历练卷轴打造的数字艺术终端。它告别了冷硬的科技感,将 4090…...
Qwen3.5-4B-Claude-Opus效果展示:数据结构概念讲解+图解式语言表达
Qwen3.5-4B-Claude-Opus效果展示:数据结构概念讲解图解式语言表达 1. 模型能力概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF 是一个专为结构化推理任务优化的轻量级AI模型。这个4B参数的版本经过特殊训练,能够将复杂的技术概念分解为清晰…...
绵羊行为检测数据集2276张VOC+YOLO格式
绵羊行为检测数据集2276张VOCYOLO格式数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2276 标注数量(xml文件个数):2276 标注数量…...
3分钟免费实现Figma界面中文本地化:设计师的终极语言解决方案
3分钟免费实现Figma界面中文本地化:设计师的终极语言解决方案 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面烦恼吗?每天花费大量时间在菜…...
python-dateutil - 强大的日期时间解析与计算工具
一、什么是python-dateutil? python-dateutil 是一个用于扩展标准库 datetime 模块的 Python 库。 它可以帮助你: 灵活地解析各种格式的日期时间字符串。进行复杂的日期时间计算,例如计算两个日期之间的相对时间。处理时区信息,…...
Openclaw中文版落地:nanobot支持中文错误提示、中文文档与本地化调试
Openclaw中文版落地:nanobot支持中文错误提示、中文文档与本地化调试 1. nanobot:超轻量级OpenClaw中文版 nanobot是一款受OpenClaw启发的超轻量级个人人工智能助手,现在全面支持中文环境。这个工具最大的特点是轻量高效,仅需约…...
5步突破:用RVC变声器从零到专业音色转换的实战指南
5步突破:用RVC变声器从零到专业音色转换的实战指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Co…...
使用Dify快速搭建CasRel模型应用:无需编码的AI工作流
使用Dify快速搭建CasRel模型应用:无需编码的AI工作流 你是不是也遇到过这样的场景?手里有一堆非结构化的文本数据,比如产品说明书、新闻稿或者客服对话记录,想从中自动找出“谁对谁做了什么”这类关系信息。传统方法要么需要写复…...
BGV vs BFV:基于LWE的两大全同态加密方案,到底该怎么选?
BGV vs BFV:基于LWE的两大全同态加密方案技术选型指南 当隐私计算项目需要处理加密数据上的复杂运算时,全同态加密(FHE)方案的选择往往成为架构设计的核心决策点。作为第二代FHE方案的典型代表,BGV和BFV虽然同属基于L…...
YouDownSet v1.3.76-多平台无需会员即可下载8K/4K视频,满速109.5MB/s!
一款面向电脑端打造的多平台视频下载工具,支持高分辨率内容获取和多线程任务处理,适合经常需要保存在线视频的用户使用。软件的一大亮点在于支持 8K、4K 等高画质下载,并且整体流程非常直接,用户只需开启一键下载功能后粘贴目标地…...
