Files
ulthon_admin/.agents/skills/ulthon-tools-http-call/SKILL.md
augushong 600ee5b085 refactor(agents): 删除 tools:agent:publish 命令,补全 helper.php 函数覆盖机制,修正多处文档 bug
- 删除 tools:agent:publish 整套(不再兼容多套 IDE,只保留 .agents 目录)
- helper.php 全部 27 个全局函数加 if (!function_exists()) 包裹,项目侧可在 app/common.php 定义同名函数覆盖
- ulthon-file-override-mechanism.md 新增全局函数覆盖章节
- AGENTS.md 删除智能体指导章节,PHP 8+ 改为 8.0+,MySQL 8+ 改为 5.7+
- AGENTS.md 项目结构树补全 tests/、extend/think/、source/ 子项
- README.md PHP 版本统一为 8.0+
- ulthon-base-app-architecture SKILL 路径补 admin/service/ 段
- ulthon-tools-http-call SKILL 补 --page-data 参数
- ulthon-naming-convention 补元数据头
- ulthon-update-workflow 统一 extend/think/ 归类
2026-07-21 19:35:28 +08:00

2.3 KiB
Raw Blame History

name, description
name description
ulthon-tools-http-call 命令行调用后台控制器/URL 进行联调与功能验证(含默认 super token 模拟登录)。

tools:http:call命令行 HTTP 调用工具)

何时使用

  • 需要在命令行快速验证某个后台页面/接口是否正常返回。
  • 需要绕过浏览器环境,在 CLI 中模拟已登录管理员请求。
  • 需要用 --app/--controller/--action 直接拼控制器路径调用。

基本用法

1) 直接按 URL 调用

php think tools:http:call --url="/admin/system.admin/index" --method=GET

2) 按控制器参数调用

php think tools:http:call --app=admin --controller=system.admin --action=index --method=GET

请求参数

  • --url:请求路径(支持以 / 开头的相对路径)。
  • --methodGET/POST/PUT/PATCH/DELETE。
  • --dataJSON 字符串,请求会自动带 Content-Type: application/json
  • --body:原始请求体字符串。
  • --headersJSON 字符串的请求头对象(例如 { "Accept":"application/json" })。
  • --app --controller --action:框架特性参数,用于拼控制器路径。
  • --page-data:标志参数(无需值),等价于追加 get_page_data=1 参数 + Accept:application/json 头。用于获取页面 assign 的数据(与 ulthon-page-api-dual-mode 配套使用)。

super token默认模拟登录

机制说明

  • tools:http:call 默认会为每次请求生成一个新的 token并写入 Cache::store('login')
  • 请求会自动携带 Authorization: Bearer <token>
  • 服务端会按既有 Bearer token 机制从 Cache::store('login') 读取登录态,因此只要命令行与服务端使用同一套缓存即可生效。

指定模拟账号

php think tools:http:call --url="/admin/system.admin/index" --user-id=2

关闭 super token回到未登录行为

php think tools:http:call --url="/admin/system.admin/index" --super-token=false

常见现象与排查

  • 仍提示“请先登录后台”:通常是命令行与服务端的缓存不共享,或服务端未运行/未走到同一环境配置。
  • 返回“无权限访问”:说明已经是登录态,但该账号对当前节点没有权限;可以换 --user-id 或调整权限节点。