Postman的各种参数你都用对了吗?

大家好,我是G探险者。

Postman我们都不陌生,作为一个广泛使用的 HTTP 客户端,平时我们使用它来测试接口,无非就是把接口的url放进去,然后根据请求类型get或者post,在不同位置传一下参数,除了常见的 Params 和 Body 配置外,还有许多其他重要的功能和配置。以下是对这些主要功能的详细介绍:

1. 配置介绍

1.1 Authorization(授权)

  • Postman 支持多种授权方式,例如 Basic Auth、Bearer Token、OAuth 2.0 等。
  • 用户可以在此部分输入凭证,例如用户名和密码或访问令牌,以通过 API 的安全验证。

1.2 Headers(请求头)

  • 请求头部是 HTTP 请求的重要组成部分,可用于提供关于请求或响应的额外信息。
  • 常见的头部包括 Content-Type(指示请求体的媒体类型)、Accept(客户端能接受的响应类型)等。

1.3 Body(请求体)

  • 在 POST 或 PUT 请求中,Body 部分用于发送数据到服务器。
  • 支持多种格式,如 raw(可以选择 JSON、文本、XML 等格式)、form-data、x-www-form-urlencoded 等。

1.4 Pre-request Script(预请求脚本)

  • 这是在实际请求发送前执行的 JavaScript 脚本。
  • 可用于设置环境变量、参数、动态修改请求体或头部等。

1.5 Tests(测试脚本)

  • 在收到响应后执行的 JavaScript 脚本。
  • 常用于断言响应数据,例如验证状态码、响应时间、返回的 JSON 结构等。

1.6 Settings(设置)

  • 包括一些全局配置,如代理设置、SSL 证书验证、请求超时设置等。
  • 可以调整这些设置以符合特定的测试环境或要求。

1.7 Params(参数)

  • 通常用于 GET 请求,也可以用于其他类型的请求。
  • 这里可以添加 URL 参数,Postman 会自动将它们拼接到请求的 URL 后面。

1.8 Environment(环境)

  • 允许用户定义一系列变量,这些变量可以在不同的请求和脚本中使用。
  • 例如,可以为不同的开发阶段(开发、测试、生产)设置不同的环境变量。

2. 对比分析

这个表格提供了每个配置项的描述、示例以及它们在 API 测试和开发中的常见应用场景。

参数描述示例适用场景
Authorization(授权)用于配置 API 认证的方法Basic Auth:用户名admin,密码123456
Bearer Token:mF_9.B5f-4.1JqM
访问受密码保护的资源,如 API 接口
Headers(请求头)包含关于请求的元数据Content-Type: application/json
Accept: application/xml
指定请求和响应的格式,传递额外的控制信息
Body(请求体)用于发送数据到服务器,特别是在 POST 或 PUT 请求中JSON 数据:{"name": "John", "age": 30}提交表单数据,上传文件,发送 JSON 或 XML 数据
Pre-request Script(预请求脚本)在请求发送之前执行的脚本设置环境变量:pm.environment.set("timestamp", new Date().getTime());设置动态参数,如时间戳,生成签名等
Tests(测试脚本)在收到响应后执行的脚本验证状态码:pm.test("Status code is 200", function () { pm.response.to.have.status(200); });检查响应的正确性,如状态码,响应体结构
Settings(设置)包括 SSL 验证、代理设置、请求超时等全局配置禁用 SSL 证书验证,设置请求超时为 30 秒调整请求的网络行为和性能参数
Params(参数)通常用于 GET 请求的 URL 查询参数查询参数:userId=1在 URL 中添加查询参数,用于过滤结果或指定特定资源
Environment(环境)用于定义在不同请求和脚本中使用的变量集设置基础 URL:baseUrl = http://localhost:3000在不同开发阶段(如开发、测试、生产)中切换变量

通过合理利用这些功能,可以更有效地测试和调试 API,确保其行为符合预期。Postman 提供的这些工具和设置非常灵活,可以满足多种不同的测试需求。

3. Headers和Body各自放什么类型的参数?

以上的很多参数,我们平时可能用不上,这里不做重点关注,我们重点关注一下Headers 和Body.这里就有个问题
什么情况下需要把参数放到Headers里面,什么情况下需要放到Body里面?

具体取决于参数的用途和请求的类型。以下是详细说明:

3.1 Headers(请求头)中的参数类型

  1. 认证信息:

    • 当需要验证用户身份时,如使用 Basic Auth 或 Bearer Token,认证信息通常放在请求头中。
    • 示例:Authorization: Basic YWRtaW46MTIzNDU2
  2. 控制信息:

    • 请求头用于传递控制信息,例如告诉服务器如何处理请求。
    • 示例:Content-Type: application/json 指明请求体是 JSON 格式。
  3. 缓存控制:

    • 控制或获取关于缓存策略的信息,如 If-None-Match 或 Cache-Control
  4. 自定义信息:

    • 有些 API 需要特定的头信息来处理请求,例如 API 密钥。
    • 示例:X-API-KEY: abcdef123456
  5. 接受类型:

    • 通过 Accept 头部指定客户端期望的响应格式,例如 Accept: application/xml

3.2 Body(请求体)中的参数类型

  1. 数据创建和修改:

    • 在 POST 和 PUT 请求中,当需要在服务器上创建或修改资源时,数据通常放在请求体中。
    • 示例:发送 JSON 数据 { "name": "John", "age": 30 } 以创建新用户。
  2. 大量数据:

    • 当需要发送大量数据时,比如文件上传或长表单,这些数据放在请求体中。
  3. 非 URL 编码的数据:

    • 某些类型的数据不适合放在 URL 中(如二进制数据),因此需要放在请求体里。
  4. 复杂结构:

    • 当数据结构较复杂或有嵌套时(如 JSON 或 XML 格式),放在请求体中更合适。

4. 小结

  • Headers 用于传递关于请求本身的元数据,比如如何处理请求、认证信息、期望的响应类型等。
  • Body 主要用于传递具体的内容数据,尤其是在创建或修改资源时。

正确地选择将参数放在 Headers 还是 Body 中,对于确保 HTTP 请求的正确性和高效性至关重要。

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

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

相关文章

Redis(地理空间Geospatial和HyperLogLog)

Geospatial: Redis中的Geospatial提供了一种存储和处理地理空间数据的能力,这对于许多应用非常有用。以下是Redis中的Geospatial的一些作用: 1. 地理位置查询:可以存储地理位置的坐标信息,并且可以通过查询指定半径范…

第2关:图的深度优先遍历

任务要求参考答案评论2 任务描述相关知识编程要求测试说明 任务描述 本关任务:以邻接矩阵存储图,要求编写程序实现图的深度优先遍历。 相关知识 图的深度优先遍历类似于树的先序遍历, 是树的先序遍历的推广,其基本思想如下: …

DITTEL控制器维修SENSITRON6-2AE

DITTEL工控产品维修包括:德国DITTEL平衡测试仪维修,DITTEL模块,过程监控模块,DITTEL控制器,平衡头,机电平衡头,显示器,平衡系统等产品。 DITTEL过程控制模块维修 DM6000是一个过程控制模块&…

onnx模型转换opset版本和固定动态输入尺寸

背景:之前我想把onnx模型从opset12变成opset12,太慌乱就没找着,最近找到了官网上有示例的,大爱onnx官网,分享给有需求没找着的小伙伴们。 1. onnx模型转换opset版本 官网示例: import onnx from onnx im…

element表格第一个列变成最后一个处理方案

解决方案: 翻译过来就是这样子,说el-table不能嵌套el-table-column以外的元素

第3关:图的广度遍历

500 任务要求参考答案评论2 任务描述相关知识编程要求测试说明 任务描述 本关任务:以邻接表存储图,要求编写程序实现图的广度优先遍历。 相关知识 广度优先遍历类似于树的按层次遍历的过程。 假设从图中某顶点v出发,在访问了v之后依次访…

Foodpanda API连接的艺术:无代码开发如何集成营销系统和广告推广工具

连接Foodpanda和电商平台的无代码开发 Foodpanda不仅是一家提供快速外卖服务的国际品牌,而且其创新的技术解决方案还能帮助电商企业优化系统运营。通过无代码开发的方法,即使没有专业的API开发知识,商家也能实现高效的电商系统和客服系统连接…

无人售货奶柜:颠覆传统零售行业的潜力黑马

无人售货奶柜:颠覆传统零售行业的潜力黑马 无人售货奶柜具备体积小、灵活运用空间、无需人工看守和自动结算等特点。相较于传统建店方式,它的成本大大降低,从而提高了运营效率。此外,无人售货奶柜独特的优势之一就是可以保持24小时…

【YOLOX简述】

YOLOX的简述 一、 原因1. 背景2. 概念 二、 算法介绍2.1 YOLOX算法结构图:2.2 算法独特点2.3 Focus网络结构2.4 FPN,PAN2.5 BaseConv2.6 SPP2.7 CSPDarknet2.8 YOlO Head 三、预测曲线3.1 曲线 一、 原因 1. 背景 工业的缺陷检测是计算机视觉中不可缺少…

关于AssetBundle禁用TypeTree之后的一些可序列化的问题

1)关于AssetBundle禁用TypeTree之后的一些可序列化的问题 2)启动Unity导入变动的资源时,Singleton ScriptableObject 加载不到 3)Xcode15构建Unity 2022.3的Xcode工程,报错没有兼容的iPhone SDK 这是第361篇UWA技术知识…

“轻松管理你的文件库:按大小归类保存,高效整理!“

亲爱的朋友们,你是否曾经为了整理电脑中杂乱无章的文件而感到烦恼?文件大小不一,无法快速找到所需内容,实在让人感到心力交瘁。但现在,我们为你带来一种全新的解决方案,让你的文件管理更轻松,更…

使用Mate 40 Harmony OS 4.0版本运行 codelabs ArkUI demo运行非常卡顿,换Mate 60没事

服务类型 DevEco Studio 概述 使用Mate 40 Harmony OS 4.0版本运行 codelabs ArkUI demo运行非常卡顿,换Mate 60没事 官方回复添加链接描述 客户支持工程师 2023-11-21 14:37:19 GMT08:00 尊敬的开发者,您好, 该机型卡顿黑屏为内部已知问题…

Mysql数据库管理-Innodb 内存优化分析

MySql数据库内存分析优化 1 Innodb重做日志 redo log是Innodb保障事务ACID属性的重要机制。工作原理图如下: 2 增加缓冲池数量,减少内部对缓冲池结构争用。 mysql内部线程对innodb缓存池的访问在某个阶段是互斥的,这种内部竞争也会产生性能…

【JavaSE】基础笔记 - 图书管理系统(保姆教程,含源码)

目录 1、图书管理系统介绍 2、大致框架 3、代码实现步骤 3.1、Book图书类 3.2、BookList书架类 3.3、User用户类、AdminUser类、NormalUser类 3.4、IOperation操作接口 3.5、继承IOperation接口的操作类 3.6、完善User类 3.7、Mian类 4、完整代码 Java的三大特性是…

python2环境问题

pip源推荐使用 -i http://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn 安装pip工具,可以环境上已有的pip赋值到对应目录下 更新pip工具,python2的pip需要20.3版本以前的。解决pip命令从其它环境复制过来导致的一系列…

《研发效能 100 问》首发,多位专家解读「研效提升」的破局之道?

为了可以帮助更多研发管理者和研发效能负责人,了解构建研发效能体系应从何做起,以及在构建过程中需要解决哪些疑难问题,有哪些最佳实践可以借鉴。2023 年 7 月,思码逸发起,由行业知名研发效能专家张乐老师担任出品人&a…

KT142C语音芯片客户反馈电脑端的配置文件,打开都正常,但是拷贝到KT142C内部就乱码

KT142C语音芯片客户反馈电脑端的配置文件,打开都正常,但是拷贝到KT142C内部就乱码 首先解释一下原理,KT142C内置的330Kbyte空间可供用户下载,实际上拿出程序部分的空间 作为声音存储介质的,也就是说,代码空…

[每周一更]-(第72期):Docker容器瘦身方式

Docker清理缓存操作 在构建测试的过程中,由于是自家小服务器,资源紧张,发现磁盘一直爆满,删除一些大镜像还是会占满的情况,就想到是不是也是缓存问题。 经过查询确实是build过程中的缓存启发的占用问题。 因此引出以下…

【自动驾驶解决方案】C++取整与保留小数位

一、C基础 1.1double型保留小数为&#xff0c;并以字符输出 #include <iostream> #include <sstream> #include <iomanip> // 包含std::fixedint main() {//浮点数double number 3.1415926;//转换工具类streamstd::stringstream stream;stream << s…