当前位置: 首页 > news >正文

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插件&#xff0c;常用于进行…...

ADS学习笔记(一)——更新中

在ADS中&#xff0c;信号上升时间为信号从0&#xff5e;100&#xff05;所用的时间&#xff0c;而实际上定义的上升边均为10&#xff05;&#xff5e;90&#xff05;&#xff0c;所以可以认为上升边&#xff1d;0.8*ADS设置上升时间。 一、终端开路及短路的反射信号 1.仿真条…...

智能优化算法应用:基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于冠状病毒群体免疫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.冠状病毒群体免疫算法4.…...

小型气象站是什么?

随着科技的发展&#xff0c;我们的生活变得越来越便捷。如今&#xff0c;一款名为小型气象站的新兴设备正在逐渐走进我们的生活&#xff0c;为我们的日常生活增添了更多的便利和舒适。 WX-CQ12小型气象站是一种集成了多种传感器和数据采集技术的智能设备&#xff0c;可以实时监…...

官方指定Jmeter配置JVM堆内存方式

1.概述 在使用Jmeter做性能测试过程中&#xff0c;可能会应为默认设置的堆内存值较小出现堆内存溢出问题&#xff0c;此时解决的方式有两种&#xff0c;分布式测试和调大堆内存。下面介绍官方推荐调整堆内存方法。 2.调整Jmeter堆内存 2.1.介绍官方推荐堆内存调整方法(jmete…...

spark-常用算子

一&#xff0c;Transformation变换/转换算子&#xff1a; 这种变换并不触发提交作业&#xff0c;这种算子是延迟执行的&#xff0c;也就是说从一个RDD转换生成另一个RDD的转换操作不是马上执行&#xff0c;需要等到有Action操作的时候才会真正触发。 1.Value数据类型的Transf…...

《opencv实用探索·二十一》人脸识别

Haar级联分类器 在OpenCV中主要使用了两种特征&#xff08;即两种方法&#xff09;进行人脸检测&#xff0c;Haar特征和LBP特征。用的最多的是Haar特征人脸检测。 Haar级联分类器是一种用于目标检测的机器学习方法&#xff0c;它是一种基于机器学习的特征选择方法&#xff0c;…...

前端项目配置下载源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版本已经支持中文分词&#xff0c;由于中文分词只能支持到单个字进行分词&#xff0c;不够灵活与适配我们平常使用习惯&#xff0c;所以有很多对应中文分词出现&#xff0c…...

2023_Spark_实验三十:测试Flume到Kafka

实验目的&#xff1a;测试Flume采集数据发送到Kafka 实验方法&#xff1a;通过centos7集群测试&#xff0c;将flume采集的数据放到kafka中 实验步骤&#xff1a; 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…...

urllib2 HTTP头部注入

文章目录 注入原理例题 [SWPU 2016]web7 注入原理 参考文章 应用场景是具有SSRF漏洞&#xff0c;结合CRLF注入 我们以redis数据库为例&#xff0c;当存在SSRF时我们伪造以下请求 http://127.0.0.1%0d%0aCONFIG%20SET%20dir%20%2ftmp%0d%0aCONFIG%20SET%20dbfilename%20evil%…...

在 WebRTC 中,Offer/Answer 模型是协商 WebRTC 连接参数的关键部分

在 WebRTC 中&#xff0c;Offer/Answer 模型是协商 WebRTC 连接参数的关键部分。当 Offer 和 Answer 交换失败时&#xff0c;可能涉及到多个原因。以下是一些可能的问题和解决方案&#xff1a; SDP 格式错误&#xff1a; Session Description Protocol&#xff08;SDP&#xff…...

数据结构:图解手撕B-树以及B树的优化和索引

文章目录 为什么需要引入B-树&#xff1f;B树是什么&#xff1f;B树的插入分析B树和B*树B树B*树分裂原理 B树的应用 本篇总结的内容是B-树 为什么需要引入B-树&#xff1f; 回忆一下前面的搜索结构&#xff0c;有哈希&#xff0c;红黑树&#xff0c;二分…等很多的搜索结构&a…...

useConsole的封装,vue,react,htmlscript标签,通用

之前用了接近hack的方式实现了console的封装&#xff0c;目标是获取console.log函数的执行&#xff08;调用栈所在位置&#xff09;所在的代码行数。 例如以下代码&#xff0c;执行window.mylog(1)时候&#xff0c;console.log实际是在匿名的箭头函数()>{//这里执行的} con…...

Azure Machine Learning - 提示工程高级技术

本指南将指导你提示设计和提示工程方面的一些高级技术。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认证的资深架构师&#xff0c…...

七款创意项目管理软件解决方案推荐:高效项目管理与团队协作工具

企业无论大小&#xff0c;都离不开项目经理、营销团队和创意人员。他们参与各种头脑风暴&#xff0c;为特定目标打造项目。然而&#xff0c;在创意项目管理中&#xff0c;细节决定成败。若处理不当&#xff0c;可能导致项目失败和混乱。 过去&#xff0c;创意项目管理依赖纸质规…...

如何在公网环境下使用Potplayer访问本地群晖webdav中的影视资源

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是&#xff1a;1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透&#xff0c;映射至公网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.蒸汽小火车 输入下面的命令下载&#xff0c;再输出sl sudo apt-get install sl sl2.今天你哞了吗 apt-get moo 3.会说话的小牛 输入下面的命令下载一下 sudo apt-get install cowsay输入这个 cowsay jianbing cowsay -l 查看其它动物的名字 然后cowsay -f 跟上动物名&…...

每日一题(LeetCode)----栈和队列--逆波兰表达式求值

每日一题(LeetCode)----栈和队列–逆波兰表达式求值 1.题目&#xff08;150. 逆波兰表达式求值&#xff09; 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算…...

2023年第四届 “赣网杯” 网络安全大赛 gwb-web3 Write UP【PHP 临时函数名特性 + 绕过trim函数】

一、题目如下&#xff1a; 二、代码解读&#xff1a; 这段代码是一个简单的PHP脚本&#xff0c;它接受通过GET请求传递的两个参数&#xff1a;‘pass’和’func’&#xff1a; ① $password trim($_GET[pass] ?? );&#xff1a;从GET请求中获取名为’pass’的参数&#xff0…...

软件设计师——软件工程(一)

&#x1f4d1;前言 本文主要是【软件工程】——软件设计师——软件工程的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304…...

阿里云|人工智能(AI)技术解决方案

函数计算部署Stable Diffusion AI绘画技术解决方案 通过函数计算快速部署Stable Diffusion模型为用户提供快速通过文字生成图片的能力。该方案通过函数计算快速搭建了AIGC的能力&#xff0c;无需管理服务器等基础设施&#xff0c;专注模型的能力即可。该方案具有高效免运维、弹…...

Axure中继器的使用

一.中继器介绍 在Axure中&#xff0c;中继器&#xff08;Relays&#xff09;是一种功能强大的元件&#xff0c;可以用于创建可重复使用的模板或组件。中继器允许您定义一个主要的模板&#xff0c;并在页面中重复使用该模板的实例。以下是中继器的作用和优缺点&#xff1a; 作…...

猫罐头哪个牌子好性价比高?五大性价比高的品牌推荐

很多猫奴担心猫咪天天吃干猫粮可能会导致营养不足&#xff0c;所以想给猫咪换换口味&#xff0c;改善一下饮食。这时&#xff0c;选择猫罐头是个不错的选择。不过&#xff0c;喂猫罐头也是有一些讲究的。 作为从业6年的宠物护理师来说&#xff0c;作为早在几年就开始接触猫罐头…...

宣布推出 ML.NET 3.0

作者&#xff1a;Jeff Handley 排版&#xff1a;Alan Wang ML.NET 是面向 .NET 开发人员的开源、跨平台的机器学习框架&#xff0c;可将自定义机器学习模型集成到 .NET 应用程序中。ML.NET 3.0 版本现已发布&#xff0c;其中包含大量新功能和增强功能&#xff01; 此版本中的深…...

常见的排序算法---快速排序算法

快速排序算法 快排是基于分治的思想来的&#xff0c;快速排序就是在元素序列中选择一个元素作为基准值&#xff0c;每趟总数据元素的两端开始交替排序&#xff0c;将小于基准值的交换的序列前端&#xff0c;大于基准值的交换到序列后端&#xff0c;介于两者之间的位置称为基准值…...

hive企业级调优策略之分组聚合优化

测试用表准备 hive企业级调优策略测试数据 (阿里网盘下载链接)&#xff1a;https://www.alipan.com/s/xsqK6971Mrs 订单表(2000w条数据) 表结构 建表语句 drop table if exists order_detail; create table order_detail(id string comment 订单id,user_id …...

英码科技受邀参加2023计算产业生态大会,分享智慧轨道交通创新解决方案

12月13-14日&#xff0c;“凝心聚力&#xff0c;共赢计算新时代”——2023计算产业生态大会在北京香格里拉饭店成功举办。英码科技受邀参加行业数字化分论坛活动&#xff0c;市场总监李甘来先生现场发表了题为《AI哨兵&#xff0c;为铁路安全运营站好第一道岗》的精彩主题演讲&…...

ftp里找到的index文件查看网站建设中/属于b2b的网站有哪些

程序冲刺1 1. 仅使用 Python 基本语法&#xff0c;即不使用任何模块&#xff0c;编写 Python 程序计算下列数学表达式的结果并输出&#xff0c;小数点后保留3位。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪…...

如何管理好一个网站/360搜索建站

版本管理工具GIT篇 一、版本管理工具干什么用的? 备份文件 作用同U盘 网盘 保存每天的成果 若是本地文件丢失 损坏 找备份如 打游戏时候的存档记录历史网盘 U盘存储的是文件最新状态 历史操作没有 作用同 history命令 找到历史操作的版本 记录 修改时间 修改内容等(提交…...

废品网站怎么做/2345网址导航应用

148. 排序链表 思路&#xff1a; 归并排序调用过程&#xff1a; 过程&#xff1a; ①分割&#xff1a;找到链表的中间节点&#xff0c;不断的分割&#xff0c;直到金生一个节点为止。 ②合并&#xff1a;实质是多次运用 "两个有序链表合并"的过程。 链表找中间节点…...

深圳网站建设制作哪家便宜/seo精华网站

随着9月份即将到来&#xff0c;华为的新款高端芯片麒麟1020的消息也日渐多了起来&#xff0c;基本可以确定的这将是全球第一款采用5nm工艺的芯片&#xff0c;显示出它在面临重重阻力之下依然稳步推进自己的芯片研发进程。华为海思推出的麒麟系列芯片在技术性能方面已与全球手机…...

电气工程专业毕业设计代做网站/小红书seo软件

px像素&#xff08;Pixel&#xff09;。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 em是相对长度单位。相对于当前对象内文本的字体尺寸,多理解父级设定font-size的尺寸。如当前对行内文本的字体尺寸未被人为设置&#xff0c;则相对于浏览器的默认字体尺寸。 任意…...

建站是什么东西/查权重工具

$to 变量里面是放是发送到的号码 $title 变量里面放的是发送邮件的主题 $content 变量里面放的是发送邮件的内容...