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

news2024/11/17 21:31:07

大家好,我是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.coloradmin.cn/o/1233872.html

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

相关文章

linux(nginx安装配置,tomcat服务命令操作)

首先进系统文件夹 /usr/lib/systemd/systemLs | grep mysql 查看带有命名有MySQL的文件夹修改tomcat.service文件复制jdk目录替换成我们的路径替换成我们的路径进入这个目录,把修改好的文件拖到我们的工具里面重新刷新系统 systemctl daemon-reload查看tomcat状态…

2022最新版-李宏毅机器学习深度学习课程-P51 BERT的各种变体

之前讲的是如何进行fine-tune,现在讲解如何进行pre-train,如何得到一个pre train好的模型。 CoVe 其实最早的跟预训练有关的模型,应该是CoVe,是一个基于翻译任务的一个模型,其用encoder的模块做预训练。 但是CoVe需要…

解析SOLIDWORKS教育版与企业版:选择合适版本,助力创新设计

SOLIDWORKS作为领先的三维CAD软件,旨在为工程设计、产品开发和创新提供全面支持。在SOLIDWORKS产品线中,教育版和企业版是两种常见的版本。让我们来了解一下它们之间的区别和特点。 SOLIDWORKS教育版:学习、探索、启发创新 面向教育和学术&…

KyLin离线安装OceanBase

去OceanBase下载若干文件 1 首先安装ob-deploy-2.3.1-2.el7.x86_64.rpm rpm -ivh ob-deploy-2.3.1-2.el7.x86_64.rpm# 运行此命令的时候他会报错 RPM should not be used directly install RPM packages, use Alien instead! 这个需要用Alien去转换为deb的包,不…

美国DDoS服务器:如何保护你的网站免遭攻击?

​  在当今数字化时代,互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展,网络安全问题也日益严重。其中,DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么,如何保护你的网站免遭DDoS攻击呢?下面将介绍…

【Axure高保真原型】3D环形图_移入显示数据标签

今天和大家分享3D环形图_移入显示数据标签的原型模板,鼠标移入环形区域时,对应区域会变绿,可以查看该区域对应的项目、数据和占比,这个原型模板是用Axure原生元件制作的,所以无需联网,而且可以自由修改样式…

【网络编程】简述TCP通信程序,三次握手,四次挥手

文章目录 🎄TCP通信程序⭐打印字符串✨中文乱码问题🎈解决方法 🌺TCP三次握手🌺TCP四次挥手🛸其他 🎊专栏【网络编程】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 &#x1f386…

Hive安装配置 - 本地模式

文章目录 一、Hive运行模式二、安装配置本地模式Hive(一)安装配置MySQL1、删除系统自带的MariaDB2、上传MySQL组件到虚拟机3、在主节点上安装MySQL组件4、在主节点上配置MySQL(1)查看MySQL服务状态(2)查看M…

每日一题(LeetCode)----数组--螺旋矩阵(一)

每日一题(LeetCode)----数组–螺旋矩阵(一) 1.题目(54. 螺旋矩阵) 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1…

电脑连有线和无线网络如何设置网络的优先级?

电脑同时连接有线和无线网络怎么设置网络的优先级: 我们知道在 笔记本电脑系统 中,可以通过有线或无线网络进行联网。如果电脑在有线网络和无线网络同时存在的情况,应该怎么设置有线网络优先连接呢?对此我们提供下面的方法可以让电脑在有Wi…

磐舟CI-Web前端项目

整体介绍 磐舟作为一个devops产品,它具备基础的CI流水线功能。同时磐舟的流水线是完全基于云原生架构设计的,在使用时会有一些注意事项。这里首先我们要了解磐舟整体的流水线打包逻辑。 文档结构说明 一般来说,磐舟推荐单个业务的标准git库…

基于Python实现用于实时监控和分析 MySQL 服务器的性能指标和相关信息工具源码

MySQL命令行监控工具 - mysqlstat 介绍 mysqlstat 是一个命令行工具,用于实时监控和分析 MySQL 服务器的性能指标和相关信息。 它可以帮助 DBA(数据库管理员)和开发人员定位和解决数据库性能问题。 以下是 mysqlstat 工具的主要功能&#…

数据结构【DS】图的应用

图的连通性问题 最少边数 最多边数 无向图非连通 𝒎𝟎 𝒎𝒏−𝟐∗(𝒏−𝟏)/𝟐 无向图连通 𝒎𝒏−𝟏 𝒎𝒏∗(&#…

python数据可视化之matplotlib.pyplot

文章目录 模块引用折线条图实际应用案例关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 不论是数据挖掘还是数据…

【U8+】用友U8账套引入/还原,提示:逻辑文件‘UFModel’不是数据库的一部分。

【问题描述】 用友U8+账套引入(恢复账套)的时候,提示: 逻辑文件‘UFModel’不是数据库‘UFDATA_001_2015’的一部分。 请使用RESTORE FILELISTONLY来列出逻辑文件名。-2147217900 【解决方法】 查看用友U8+账套库正确的逻辑名称为【UFMODEL】和【UFMODEL_log】。 【案例…

【软件测试】一位优秀测试工程师具备哪些知识和经验?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 根据观察&#xf…

「C++」AVL树的实现(动图)

💻文章目录 AVL树概念AVL的查找AVL树的插入 代码部分AVL树的定义查找插入旋转 📓总结 AVL树 概念 AVL树又名高度平衡的二叉搜索树,由G. M. Adelson-Velsky和E. M. Landis发明,顾名思义,其任意节点的左右子树最大高度…

哈希表HashTable

散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。 哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,复杂度O(1) 哈希表本质…

外贸ERP系统是什么?推荐的外贸管理软件?

外贸ERP管理系统有哪些?海洋建站管理软件的功能? 为了更有效地处理外贸业务,许多企业正在寻找先进的工具和技术。为了提高效率、降低成本并增强竞争力,越来越多的外贸企业正在转向外贸ERP系统。那么,外贸ERP系统究竟是…

深度学习之基于Django+Tensorflow动物识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Django和TensorFlow的动物识别系统可以被设计成能够使用深度学习算法自动识别上传的图像中的动物种类&#xff…