PostMan笔记(二)发送请求

news2025/1/26 15:43:13

1. 发送请求功能介绍

Postman是一款流行的API开发工具,它可以让开发人员更方便地测试、调试和使用API。其中,发送请求功能是Postman最为重要和基础的功能之一。

在Postman中,发送请求功能主要包括以下几个步骤:

  1. 选择请求方法:Postman支持多种HTTP请求方法,包括GET、POST、PUT、DELETE等。在发送请求前,需要选择相应的请求方法。

  2. 添加请求URL:在Postman的地址栏中添加请求URL,包括协议、域名、端口、路径等信息。可以使用环境变量、全局变量、预请求脚本等功能来管理请求URL。

  3. 添加请求头部:HTTP请求头部包含请求信息的附加属性,比如Content-Type、Authorization、User-Agent等。在Postman中,可以通过添加请求头部来自定义请求信息。

  4. 添加请求参数:HTTP请求参数包含请求数据的键值对,可以是查询参数、表单数据、JSON数据等。在Postman中,可以通过Params、Body、Authorization等标签页来添加请求参数。

  5. 发送请求:在完成上述步骤后,点击Send按钮即可发送请求。Postman会在请求历史中记录请求的结果和响应信息,方便开发人员查看和分析。

需要注意的是,Postman还支持多种高级功能,比如断言、变量、测试脚本、Mock等,可以让开发人员更加高效地进行API开发和测试。

2. GET 请求

2.1 传参的方式

Postman可以通过以下方式进行GET请求的传参:

2.1.1 查询参数(Query Parameters)

这是GET请求中最常用的传参方式。可以在请求URL的末尾添加查询参数,例如:http://example.com/api/users?name=John&age=30。在Postman中,可以在请求的URL栏中直接添加查询参数,或者使用Params选项卡添加。

可以使用@RequestParam注解来接收查询参数,例如:

@GetMapping("/api/users")
public List<User> getUsers(@RequestParam String name, @RequestParam int age) {
    // 根据查询参数查询用户
}

2.1.2  路径参数(Path Parameters)

有些API设计会要求在URL中包含动态参数,例如:http://example.com/api/users/123,其中的“123”是用户ID。在Postman中,可以在请求的URL中添加路径参数,例如:http://example.com/api/users/{{userId}},其中“{{userId}}”是变量名,可以在请求前设置。

路径参数(Path Parameters):可以使用@PathVariable注解来接收路径参数,例如:

@GetMapping("/api/users/{userId}")
public User getUserById(@PathVariable Long userId) {
    // 根据用户ID查询用户
}

2.1.3  请求体参数(Request Body Parameters)

虽然GET请求通常不包含请求体,但有些API可能要求在请求体中包含参数。在Postman中,可以使用Body选项卡添加请求体,并在其中包含需要的参数。

@PostMapping("/api/users")
public User addUser(@RequestBody User user) {
    // 添加新用户
}

总之,查询参数和路径参数是最常见的GET请求传参方式,而请求体参数则不太常用。在使用Postman发送GET请求时,应根据API的设计选择适当的传参方式。

2.2 不同的参数类型

在Postman中,可以使用以下方式传递GET请求中的不同类型的参数值

2.2.1 List类型参数值

 在SpringBoot中,可以使用@RequestParam注解来接收List类型的参数值,例如:

@GetMapping("/api/users")
public List<User> getUsers(@RequestParam List<String> names) {
    // 根据查询参数查询用户
}

2.2.2 Long类型参数值

可以直接传递Long类型的参数值,例如:

在SpringBoot中,可以使用@RequestParam注解来接收Long类型的参数值,例如:

@GetMapping("/api/users")
public User getUserById(@RequestParam Long id) {
    // 根据用户ID查询用户
}

2.2.3 Object类型参数值

可以使用JSON格式的字符串传递Object类型的参数值,例如:

在SpringBoot中,可以使用@RequestParam注解和@JsonDeserialize注解来接收Object类型的参数值,例如:

@GetMapping("/api/users")
public User getUser(@RequestParam("user") @JsonDeserialize(using = UserDeserializer.class) User user) {
    // 根据用户信息查询用户
}

在上面的代码中,UserDeserializer是自定义的JSON反序列化器,用于将JSON字符串反序列化为User对象。需要在User类上添加@JsonDeserialize注解,指定使用该反序列化器进行反序列化。

3. Post请求

3.1 简单参数类型请求方式

在Postman中,可以使用以下几种方式传递POST请求中的参数:

3.1.1 Form表单方式

可以使用Form表单的形式传递POST请求中的参数,例如:

http://example.com/api/users

在Body选项卡中选择x-www-form-urlencoded格式,然后在键值对中填写参数,例如:

name=John
age=30

在SpringBoot中,可以使用@RequestParam注解来接收Form表单中的参数,例如:

@PostMapping("/api/users")
public User addUser(@RequestParam String name, @RequestParam int age) {
    // 添加新用户
}

3.1.2 JSON格式方式

可以使用JSON格式的形式传递POST请求中的参数,例如:

http://example.com/api/users

在Body选项卡中选择raw格式,并选择JSON格式,然后在输入框中填写JSON格式的参数,例如:

{
    "name": "John",
    "age": 30
}

在SpringBoot中,可以使用@RequestBody注解来接收JSON格式的参数,例如:

@PostMapping("/api/users")
public User addUser(@RequestBody User user) {
    // 添加新用户
}

3.1.3 文件上传方式

可以使用文件上传的形式传递POST请求中的参数,例如:

http://example.com/api/users

在Body选项卡中选择form-data格式,然后在键值对中选择File类型的参数,并选择文件进行上传。

在SpringBoot中,可以使用@RequestParam注解来接收文件上传的参数,例如:

@PostMapping("/api/users")
public User addUser(@RequestParam("file") MultipartFile file) {
    // 上传用户头像
}

需要注意的是,POST请求中的参数传递方式需要与API的设计相对应,例如,如果API要求使用JSON格式传递参数,则必须使用JSON格式的形式传递参数。

3.2 多种参数类型发起请求

3.2.1  @RequestParam或者@RequestPart的关系

@RequestParam注解用于从HTTP请求的查询参数中获取单个值,@RequestPart注解用于从multipart/form-data请求中获取单个值。在Postman中填充这些注解需要进行如下操作:

对于@RequestParam注解:

  1. 在Postman中打开创建请求的窗口。
  2. 选择HTTP方法,输入URL地址。
  3. 在“Params”选项卡下添加一个新的参数,参数名为“user”,值为你要传递的User对象的JSON字符串。
  4. 单击“Send”按钮,将请求发送到服务器。

例如,你可以在Postman中将user的值作为查询参数发送请求:

http://example.com/api/user?id=1&account=username&iphone=1234567890&password=password&type=user&companyId=456&companyName=company name&userType=1&orgId=789&tenants=[{"id":1,"name":"tenant name","description":"tenant description"}]&role={"id":2,"name":"role name","description":"role description"}&company={"id":456,"name":"company name","address":"company address"}&token=token string

对于@RequestPart注解:

  1. 在Postman中打开创建请求的窗口。
  2. 选择HTTP方法,输入URL地址。
  3. 在“Body”选项卡中选择“form-data”。
  4. 在“KEY”列中添加一个新的参数,参数名为“user”,类型为“File”或“Text”。
  5. 如果你选择“File”类型,请选择一个User对象的JSON文件。如果你选择“Text”类型,请将JSON对象粘贴到VALUE列中。
  6. 单击“Send”按钮,将请求发送到服务器。

例如,你可以在Postman中将user的值作为form-data发送请求:

{
  "id": 1,
  "account": "username",
  "iphone": "1234567890",
  "password": "password",
  "type": "user",
  "companyId": 456,
  "companyName": "company name",
  "userType": 1,
  "orgId": 789,
  "tenants": [
    {
      "id": 1,
      "name": "tenant name",
      "description": "tenant description"
    }
  ],
  "role": {
    "id": 2,
    "name": "role name",
    "description": "role description"
  },
  "company": {
    "id": 456,
    "name": "company name",
    "address": "company address"
  },
  "token": "token string"
}

请注意,在发送请求之前,需要确保已经在服务器端实现了相应的方法,并且已经配置好了正确的路由和参数类型。

3.2.2 复杂对象或文件

如果你需要传递复杂对象或文件等数据,你可以使用@RequestPart注解来声明这些参数,例如:

@PostMapping("/example")
public String example(@RequestPart("object1") Object object1, @RequestPart("file1") MultipartFile file1) {
    // 处理请求逻辑
}

请注意,@RequestParam注解声明的参数会以"application/x-www-form-urlencoded"格式进行编码,而@RequestPart注解声明的参数则会以"multipart/form-data"格式进行编码。因此,您需要根据您的请求数据类型选择适当的注解来声明参数。

3.2.3 表单方式多种类型参数

在Body选项卡中选择x-www-form-urlencoded格式,然后在键值对中填写参数,例如:

name=John
age=30
email=john@example.com
address[city]=New York
address[state]=NY

在SpringBoot中,可以使用@RequestParam注解来接收Form表单中的多种类型的参数,例如:

@PostMapping("/api/users")
public User addUser(@RequestParam String name, @RequestParam int age, @RequestParam String email, @RequestParam Map<String,String> address) {
    // 添加新用户
}

4. 环境变量、全局变量、预请求脚本的使用方式

4.1 环境变量

环境变量可以用来存储API测试过程中的常用变量,例如API的基础URL、认证token、用户名、密码等等。在Postman中,可以通过点击右上角的眼睛图标,打开“Manage Environments”来管理环境变量。在“Manage Environments”页面中,可以添加、编辑、删除环境变量,并设置各个环境变量的值。

 在请求中,可以使用双括号语法(例如{{variable_name}})来引用环境变量。例如,如果我们已经在环境变量中设置了名为“base_url”的变量,并将其设置为“​ http://example.com ​" 则可以在请求的URL中使用{{base_url}}来代替“http://example.com”。

这样,当我们需要更改基础URL时,只需要更改环境变量的值即可,而不需要修改每个请求的URL。

4.2 全局变量

全局变量与环境变量类似,但是它们可以在Postman的所有环境中使用。全局变量可以在Postman的设置中定义,并且可以在请求中使用双括号语法来引用它们。在设置中,可以设置全局变量的键值对。

4.3 预请求脚本

预请求脚本是一个JavaScript脚本,它可以在发送请求之前执行。预请求脚本可以用于设置请求头、设置请求参数、验证请求体、设置环境变量等等。在Postman中,可以在请求中的“Pre-request Script”选项卡中编写预请求脚本。

预请求脚本可以使用Postman的内置方法和全局变量来实现各种功能。例如,可以使用pm.environment.set()方法来设置环境变量的值,使用pm.request.headers.add()方法来设置请求头等等。

总之,Postman的环境变量、全局变量和预请求脚本等功能可以帮助我们更加高效地进行API测试,尤其是在测试多个API、多个环境时,这些功能可以减少我们的工作量并提高测试效率。

5. 添加请求头信息

Postman支持多种类型的头部信息,以下是其中一些常见的:

  1. Content-Type:表示请求或响应消息的MIME类型。常见的MIME类型包括application/json、application/xml、application/x-www-form-urlencoded等。

  2. Authorization:表示请求的身份验证信息,常见的有Basic认证和Bearer Token认证等。

  3. User-Agent:表示请求的客户端信息,常见的有浏览器、移动设备等。

  4. Accept:表示客户端接受的响应内容类型,常见的有application/json、application/xml等

5.1 Content-Type:

表示请求或响应消息的MIME类型。常见的MIME类型包括application/json、application/xml、application/x-www-form-urlencoded等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Content-Type”作为头部名称,然后在头部值中输入所需的MIME类型。

5.2 Authorization

表示请求的身份验证信息,常见的有Basic认证和Bearer Token认证等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Authorization”作为头部名称,然后在头部值中输入所需的身份验证信息。

5.3 User-Agent

表示请求的客户端信息,常见的有浏览器、移动设备等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“User-Agent”作为头部名称,然后在头部值中输入所需的客户端信息。

5.4 Accept

表示客户端接受的响应内容类型,常见的有application/json、application/xml等。

添加方法:在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入“Accept”作为头部名称,然后在头部值中输入所需的响应内容类型。

除了以上列出的头部信息,还有很多其他类型的头部信息可以添加,方法都是类似的。在请求编辑器中的Headers选项卡中,点击“Add Header”按钮,在弹出的对话框中输入头部名称和值即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析时,进行数据建模该如何筛选关键特征?

1.为什么要做关键特征筛选&#xff1f; 在数据量与日俱增的时代&#xff0c;我们收集到的数据越来越多&#xff0c;能运用到数据分析挖掘的数据也逐渐丰富起来&#xff0c;但同时&#xff0c;我们也面临着如何从庞大的数据中筛选出与我们业务息息相关的数据。&#xff08;大背景…

Java的对象克隆

本节我们会讨论 Cloneable 接口&#xff0c;这个接口指示一个类提供了一个安全的 clone() 方法。 Object 类提供的 clone() 方法是 “浅拷贝”&#xff0c;并没有克隆对象中引用的其他对象&#xff0c;原对象和克隆的对象仍然会共享一些信息。深拷贝指的是&#xff1a;在对象中…

微服务---一篇学完SpringCloud

SpringCloud 1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff1a…

java企业级信息系统开发学习笔记06基于xml配置方式使用Spring MVC

文章目录 一、学习目标二、Spring MVC概述1、MVC架构2、Spirng MVC3、使用Spring MVC的两种方式 三、基于xml配置与注解的方式使用Spring MVC&#xff08;一&#xff09;创建Maven项目&#xff08;二&#xff09;添加相关依赖&#xff08;三&#xff09;给项目添加Web功能&…

SpringMVC表格提交中文乱码和配置logback

最佳解决方案还是使用Spring提供的过滤器&#xff0c;将其配置到WEB.XML文件中&#xff1a; <filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class&g…

nginx部署VUE项目

前言 目前公司的前端代码基本都是部署在nginx下&#xff0c;特此来记录一下 开发环境&#xff1a;window10 nginx环境搭建&#xff08;参考下方文章&#xff09; window环境安装 mac环境安装 本地我将nginx放置于F盘 前端项目打包 一个nginx服务下可能会放置多个前端包&…

echarts 折线图

Echarts 常用各类图表模板配置 注意&#xff1a; 这里主要就是基于各类图表&#xff0c;更多的使用 Echarts 的各类配置项&#xff1b; 以下代码都可以复制到 Echarts 官网&#xff0c;直接预览&#xff1b; 图标模板目录Echarts 常用各类图表模板配置一、简洁折线图二、环形图…

结构体的存储

由于要想知道结构体的大小&#xff0c;了解结构体是如何存储在内存中的 我们需要先了解一个知识点&#xff1a; 结构体内存对齐 1. 第一个成员在与结构体变量偏移量为0的地址处 (偏移量是某个字节相较于起始存储空间的相差字节数 例如第一个字节的偏移量是0&#xff0c;第二个…

一套专业的C#医院体检管理系统源码 PEIS体检报告管理系统源码 C/S医院PEIS系统源码

医院PEIS体检管理系统源码&#xff0c;有源码&#xff0c;有演示&#xff0c;自主研发&#xff0c;官方正版授权&#xff01; 开发语言&#xff1a;C# 开发工具&#xff1a;VS2013版本起 后端框架&#xff1a;winform 数 据 库&#xff1a;oracle 12c 医院体检系统主要特点…

人大金仓亮相2023CHITEC,五大看点不容错过

近日&#xff0c;由中国卫生信息与健康医疗大数据学会和《中国卫生信息管理杂志》社联合举办的2023&#xff08;17th&#xff09;中国卫生信息技术/健康医疗大数据应用交流大会暨软硬件与健康医疗产品展览会&#xff08;2023 CHITEC&#xff09;在安徽合肥顺利召开。 作为数据库…

【DAY38】BOM/VUE初步学习

pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 screenLeft&#xff0c;screenTop&#xff0c;screenX&#xff0c;screenY 声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari…

JavaScript历史

JavaScript历史 参考视频1 1990年&#xff0c;第一个终端显示网页被蒂姆博士创造出来&#xff0c;表现为超链接跳转、无图的特点。文本格式定义、文本传输协议即应用层协议&#xff0c;解析显示引擎是关键。1993年&#xff0c;随着人们对视觉效果的要求逐渐变高&#xff0c;马…

Https详解

文章目录 一. 什么是 Https1. "加密"是什么?2. 对称加密3. 非对称加密4. "中间人攻击" 二. 引入证书理解签名黑客能否伪造证书?黑客能否替换公钥?黑客能否篡改签名?如何查看证书? 一. 什么是 Https https 就是 http 安全层(SSL)–> 用来加密的协…

黑马在线教育数仓实战6

6. 意向用户主题看板_增量流程 6.1 数据采集(拉链表) 7. hive的索引 ​ 索引的作用: 加快查询的效率 为什么索引可以提升查询效率呢? hive索引是在 分区 分桶优化基础上, 又提供一种新的优化手段, 如果分区 和分桶受限, 可以尝试使用索引的方式来优化处理 hive提供了三种索…

VMware ESXi 8.0U1 macOS Unlocker OEM BIOS (标准版和厂商定制版)

ESXi 8.0U1 标准版&#xff0c;Dell HPE 联想 浪潮 定制版 请访问原文链接&#xff1a; https://sysin.org/blog/vmware-esxi-8-u1-oem/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 2023-04-18, VMware vSphere 8.0U1 发布…

家用洗地机实用吗?家用洗地机款式推荐

要说现在家居清洁用什么单品更省心&#xff0c;洗地机必须要算一项。虽然这在国际上也不是什么新鲜的概念了&#xff0c;但是在国内兴起也只是这几年的事&#xff0c;关于家用洗地机什么牌子最好之类的问题也是很多人都比较关心的问题。我个人也是不喜欢做家务的&#xff0c;家…

C++算法:排序、查找

排序 排序是一个非常经典的问题&#xff0c;它以一定的顺序对一个数组&#xff08;或一个列表&#xff09;中的项进行重新排序 有许多不同的排序算法&#xff0c;每个都有其自身的优点和局限性。 时间复杂度&#xff1a;对排序数据的总的操作次数。反映当n变化时&#xff0c;操…

SQL之SQL优化

文章目录 一、插入数据优化insert优化大批量插入数据 二、主键优化数据组织方式页分裂页合并主键设计原则三、order by优化 四、Group By 优化五、limit优化六、count优化count的几种用法 七、update优化总结 一、插入数据优化 insert优化 insert into tb_test values(1, tom…

Linux:centos:系统服务基础控制(systemctl)基础使用 图形化工具ntsysv使用

基础使用的办法为&#xff1a; systemctl控制类型服务名称 控制常用类型为一下几个 start 启动 stop 停止 enable 开机自启 disable 开机不自启 restart 重新启动 reload 重新加载 status 查看服务状态 systemc…

Redis---主从复制

一、redis主从复制 主从复制&#xff1a;是存储数据的服务结构 主服务器&#xff1a;接受客户端连接的服务器 从服务器&#xff1a;自动与主服务器保持数据一致的服务器 配置主从复制 1、环境准备 主服务器 主机名&#xff1a;master IP地址&#xff1a;192.168.11.101/…