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

基于Postman进行http的请求和响应

Postman 是一款广泛用于 API 开发、测试和管理的协作平台,它支持多种 API 类型(如 REST、GraphQL、SOAP 等),通过直观的图形界面和强大的功能,帮助开发者简化 API 工作流。

支持多种请求方法

Postman支持多种 HTTP 方法(GET、POST、PUT、DELETE 等),可自定义请求头(Headers)、参数(Params)、请求体(Body,如 JSON、Form-data、x-www-form-urlencoded 等)。

实时响应

Postman能够实时显示响应结果(状态码、响应头、响应体),并支持格式化(如 JSON 自动排版)、搜索和保存,方便快速定位问题。

基于StringBootWeb介绍各种请求方式 

简单参数

直接在requestmapping路径的后面加问号,然后书写请求的参数,中间用&表示and

@RestController
public class RequestController {@RequestMapping("/simpledemo")//string boot 接受形式public String simpledemo(@RequestParam(name="name") String username, Integer age){//requestparam注解用于将请求参数名映射到方法形参System.out.println(username+":"+age);return "OK";}

 点击发送之后,postman收到响应ok,idea输出sout内容


实体参数

我们介绍一种比较复杂的实体参数,首先我们建立一个user实体类,然后在user里面调用另一个实体类

使用右键生成把getter和setter以及tostring写好

    @RequestMapping("/complexPoJo")public String complexPoJo(User uesr){System.out.println(uesr);return "OK";}

 在写响应的时候,我们直接将实体类对象user作为参数就可以了


数组或列表参数

 当我们需要传递同一个参数但是传递不同的值的时候,可以使用数组或者列表作为参数传递

    //数组名和请求的参数名一致@RequestMapping("/arrayPoJo")public String arrayPoJo(String[] hobby){System.out.println(Arrays.toString(hobby));return "OK";}@RequestMapping("/listParam")//默认放到数组,如果要用集合需要通过requestparam进行绑定public String listParam(@RequestParam List<String> hobby){System.out.println(hobby);return "OK";}

 这里需要注意的是参数的名字一定要和postman传的key相同,除此之外,如果要用集合响应参数需要使用@RequestParam


日期参数

当请求参数中包含类似updatetime这种参数,存放着目前的时间,一般为yyyy:MM:dd HH:mm:ss的格式

    @RequestMapping("/dateParam")public String dateParam(@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime){System.out.println(updateTime);return "OK";}

这个时候我们需要使用LocalDateTime来接受参数,并且使用注解@DateTimeFormat去指定时间日期的格式

 


json参数

在实际的请求和响应通信中,json形式是最常见的形式,因为我们在stringbootweb中使用的 注解@RequestController中封装了@RequesrBody这个注解

requestbody注解会将方法返回值直接进行响应,如果返回值是实体对象或者集合的话就会将其转换为json格式进行响应

    @RequestMapping("/jsonParam")public String jsonParam(@RequestBody User user){System.out.println(user);return "OK";}

当我们想给服务器请求json格式的参数时,我们可以使用post请求方法

在postman中选择Body部分,填写我们的json参数,注意键对的格式


路径参数

当我们的请求传递的是一个路径参数的时候,我们可以使用斜杠之间大括号的形式来获取参数

    @RequestMapping("/path/{id}/{name}")public String pathParam(@PathVariable Integer id,@PathVariable String name){System.out.println(id+":"+name);return "OK";}

 比如上面的代码,我们可以将path路径后面的两个大括号来分别获取id和name两个参数,注意在书写方法名的时候,我们需要在每个形参前面加入注解@PathVariable来指明这个参数为路径参数

 


在实际开发中,我们经常会使用统一响应参数来处理请求,这样能够大幅度提高前后端交互的效率。

统一响应参数

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 +'}';}
}

比如这个Result实体类,我们可以用code和msg表示响应是否成功,并用data来响应参数 

postman除了能够方便进行http请求之外,还能做到很多如自动化测试的功能,很强大的软件。 

http://www.dtcms.com/a/311205.html

相关文章:

  • 基于SpringBoot+MyBatis+MySQL+VUE实现的在线课程管理系统(附源码+数据库+毕业论文+开题报告+部署教程+配套软件)
  • Ubuntu系统VScode实现opencv(c++)图像放缩与插值
  • 高效轻量的C++ HTTP服务:cpp-httplib使用指南
  • Android 15 限制APK包手动安装但不限制自升级的实现方案
  • 把“多视图融合、深度传感”组合在一起,今天分享3篇3D传感技术干货
  • [硬件电路-120]:模拟电路 - 信号处理电路 - 在信息系统众多不同的场景,“高速”的含义是不尽相同的。
  • Word怎样转换为PDF
  • Qwen3 Embedding:新一代文本表征与排序模型
  • 2411. 按位或最大的最小子数组长度
  • Django开发中医针灸经络图系统实战
  • 【iOS】3GShare仿写
  • 【Linux网络】netstat 的 -anptu 各个参数各自表示什么意思?
  • 2025 年 VSCode 插件离线下载硬核攻略
  • 打破传统养育框架:梁婉昕的 “非矫正式教育” 探索|创客匠人
  • 八股取士--docker
  • 在 AKS 中运行 Azure DevOps 自托管代理-2
  • 贪心算法应用:3D打印支撑结构问题详解
  • CommonJS和ES6 Modules区别
  • 如何安装和使用 Cursor AI 编辑器
  • 深度解读 | 斯坦福:2025 AI 指数报告
  • 【深度学习新浪潮】什么是专业科研智能体?
  • 【OpenGL】LearnOpenGL学习笔记01 - 环境配置、窗口创建
  • RS232转Profinet网关与西门子S7-1200 PLC的智能化工业通信应用
  • 区块链笔记
  • 李宏毅NLP-10-语音分离
  • (1-8-1) Java -XML
  • 关于Web前端安全防御XSS攻防的几点考虑
  • Unity_数据持久化_XML存储相关
  • 第三十九章:AI导演的“魔法时间轴”:文生视频与Video Latent扩散结构
  • [ LeetCode-----盛最多的水]