函数系统

在 HTTP 调试中使用函数处理参数与响应。

HTTP 调试支持调用内置函数和自定义函数,用于生成测试数据、格式化参数、提取响应字段等,减少重复手工操作。

视频加载中

使用函数

函数通过 {{函数名}}{{函数名(参数)}} 的方式引用。发送 HTTP 请求时,Cool Request 会在请求发起前解析这些表达式,并将函数执行结果替换到对应位置。

例如,使用 date 函数生成当前日期:

{{date}}

如果在请求参数中这样填写:

createTime={{date}}

请求发送前会先执行 date 函数,再把执行结果作为 createTime 的值。

提示

函数表达式需要使用双大括号包裹,例如 {{date}}。函数名需要与内置函数或自定义函数名称一致。

支持的位置

函数可用于 HTTP 调试中需要动态生成内容的位置,例如:

  • URL 查询参数。
  • Path 参数。
  • Header 值。
  • Cookie 值。
  • Body 内容,例如 JSON、Form、Form-data、Raw Body。
  • 环境变量或其他可被请求参数引用的位置。

JSON Body 示例:

{
  "name": "test-user",
  "createdAt": "{{date}}",
  "traceId": "{{uuid}}"
}

Header 示例:

X-Request-Time: {{date}}
X-Trace-Id: {{uuid}}

函数参数

函数支持传入基本类型参数。带参数的函数使用 {{函数名(参数)}} 的格式,例如:

{{subString(3)}}

上面的写法会调用 subString 函数,并把 3 作为参数传入。

基本类型参数

函数参数支持常见基本类型和字符串类型:

  • 整数,例如 {{subString(3)}}
  • 小数,例如 {{amount(12.5)}}
  • 布尔值,例如 {{enabled(true)}}
  • 字符串,例如 {{prefix("user")}}

多个参数使用英文逗号分隔:

{{subString("abcdef", 1, 3)}}

字符串参数建议使用英文双引号包裹,避免与数字、布尔值或函数名混淆。

{{concat("user", 10001)}}

注意

函数参数中的括号、逗号和引号需要使用英文符号。中文符号可能导致函数解析失败。

自定义函数

用户可在 CoolRequest设置 -> Function 中使用 Java 语言编写自定义函数。

自定义函数保存后,即可在 HTTP 请求中通过 {{函数名}} 方式引用。如果函数定义了参数,也可以通过 {{函数名(参数)}} 的方式传入。

例如定义一个 subString 函数后,可在请求参数中这样使用:

{{subString(3)}}

也可以把函数和普通文本组合使用:

user-{{subString(3)}}-{{date}}

请求发送前会依次解析表达式,并把每个函数表达式替换为对应返回值。

使用示例

查询参数

/api/order/list?page=1&pageSize=20&date={{date}}
Authorization: Bearer {{token}}

JSON Body

{
  "userId": "{{subString(3)}}",
  "requestTime": "{{date}}",
  "mock": true
}

Form 参数

name={{prefix("test")}}
age={{randomInt(18, 60)}}

调试建议

  • 对每次请求都不同的数据,例如日期、随机数、Trace ID,优先使用函数生成。
  • 对多个接口重复使用的规则,例如 token、签名、字符串截取,建议封装为自定义函数。
  • 函数名尽量保持清晰,避免与已有内置函数重名。
  • 当函数解析结果不符合预期时,先检查函数名、参数数量、参数类型和英文符号。