2. HTTP 请求头简介

在动手实现前,先快速回顾下 HTTP 请求头的基础知识。HTTP 请求头是客户端与服务器通信时传递附加信息的键值对字段,可附加在请求和响应中。常见用途包括:

  • 身份验证(如 Authorization
  • 内容类型声明(如 Content-Type
  • Cookie 传递

示例格式:

Authorization: Bearer YmFyIiwiaWF0IjoxN;
Content-Type: application/json;
Cookie: foo=bar;

本文核心思路:通过 Postman 的预请求脚本执行 JavaScript 代码动态设置请求头

3. 搭建测试环境

我们使用一个现成的 Spring Boot 项目 spring-boot-json 作为演示后端。该项目包含一个 StudentController 接口,提供学生模型的 CRUD 操作。

启动步骤:

  1. 执行 Maven install 命令安装依赖
  2. 运行 SpringBootStudentsApplication 主类
  3. 确认 Tomcat 服务器运行在 8080 端口

验证服务可用性:

  • 向接口 http://localhost:8080/students/ 发送 GET 请求
  • 预期返回 JSON 格式数据

初始 GET 请求示例

服务就绪后,即可通过 Postman 脚本自动添加请求头

4. 使用预请求脚本添加请求头

Postman 提供了 pm JavaScript API 对象操作请求数据。通过 pm.request 对象可以:

  • 添加请求头
  • 修改现有请求头
  • 删除请求头

4.1 为单个请求添加

基础语法

// 字符串格式
pm.request.headers.add("foo: bar");

// 对象格式(推荐)
pm.request.headers.add({
  key: "foo",
  value: "bar"
});

实战演示

  1. 在请求的「Pre-request Script」标签页添加脚本:

    pm.request.headers.add({
     key: "Accept",
     value: "application/json"
    });
    

    单个请求脚本配置

  2. 发送请求后,打开控制台(左下角 Console 按钮)

  3. 展开「Request Headers」验证结果:

    Accept: application/json
    

    控制台请求头验证

踩坑验证: 若故意设置不兼容的请求头:

pm.request.headers.add({ 
    key: "Accept",
    value: "image/*" 
});

将返回 406 Not Acceptable 状态码,证明脚本生效。

4.2 为整个集合添加

适用场景:当需要为集合内所有请求统一添加请求头时。

操作步骤

  1. 创建「Student API Collection」集合
  2. 添加测试接口(如 /students//students/2
  3. 在集合的「Pre-request Script」标签页添加脚本:
    pm.request.headers.add({ 
     key: "Accept",
     value: "application/json" 
    });
    
    集合脚本配置

执行验证

  1. 确保已移除单个请求中的脚本(避免覆盖集合级脚本)
  2. 点击集合的「Run」按钮启动 Collection Runner
  3. 在 Runner 界面点击「Run Student API Collection」
  4. 执行后检查控制台:
    • 所有请求均包含 Accept: application/json
    • 状态码和响应体验证请求成功

集合执行控制台

5. 总结

本文通过 Postman 的预请求脚本功能,实现了两种维度的请求头自动添加:

  • 单个请求级:适合特殊需求的定制化请求头
  • 集合级:适合批量管理统一请求头

核心要点:

  1. 使用 pm.request.headers.add() 方法
  2. 优先选择对象参数格式(可扩展更多属性)
  3. 集合级脚本需注意优先级问题

提示:更复杂的脚本逻辑(如动态 token 生成)可参考 Postman 官方文档。本文示例代码已上传至 GitHub 仓库


原始标题:Add Header to Every Request in Postman