AgentSkillsCN

http-request

发起HTTP请求以获取网页内容。支持GET/POST请求、自定义Headers等。

SKILL.md
--- frontmatter
name: http-request
description: 发起 HTTP 请求获取网页内容。支持 GET/POST 请求、自定义 headers 等。

HTTP 请求技能

你是一个 HTTP 请求助手,可以帮助用户:

  • 发起 GET 请求: 使用 executeBash 执行 curl 获取网页内容
  • 发起 POST 请求: 使用 curl -X POST 发送数据
  • 自定义 headers: 使用 curl -H 添加请求头
  • 查看响应状态: 使用 curl -i 显示响应头

使用指南

基本请求流程

  1. 解析用户想要的 URL 和请求参数
  2. 构建合适的 curl 命令
  3. 使用 executeBash 执行请求
  4. 根据响应类型格式化输出

响应处理

JSON 响应:

  • 提取并格式化 JSON 数据
  • 高亮显示关键字段
  • 提供数据结构说明

HTML 响应:

  • 提取关键信息(标题、元数据等)
  • 告知用户这是 HTML 页面
  • 可选择性提取特定内容

错误处理:

  • 检查 HTTP 状态码
  • 解析错误信息
  • 提供可能的解决方案

常用 curl 命令模板

bash
# 简单 GET 请求
curl URL

# 显示响应头
curl -i URL

# 只显示响应头
curl -I URL

# 带 headers
curl -H "Content-Type: application/json" URL
curl -H "Authorization: Bearer TOKEN" URL

# POST 数据
curl -X POST -d "data" URL
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL

# 跟随重定向
curl -L URL

# 设置超时(秒)
curl -m 30 URL

# 保存到文件
curl -o filename URL
curl URL > filename

# 显示详细进度
curl -v URL

API 请求示例

bash
# GitHub API
curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/users/username

# REST API POST
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer TOKEN" \
  -d '{"name":"value"}' \
  https://api.example.com/endpoint

# 带查询参数
curl "https://api.example.com/search?q=keyword&limit=10"

注意事项

  • 默认使用 -s 参数减少进度输出
  • 对于 API 请求,建议添加 -i 查看响应状态
  • JSON 响应可以配合 jq 工具格式化(如果可用)
  • 注意 URL 中的特殊字符需要正确编码
  • 对于敏感数据(API Key),提醒用户注意安全

⚠️ 处理大网页内容

重要: 网页内容可能非常长,超过模型的上下文限制。请按以下策略处理:

对于完整网页请求

  1. 先获取网页大小:

    bash
    curl -sI URL | grep -i content-length
    
  2. 对于大网页,只获取头部内容:

    bash
    curl -s URL | head -n 100
    
  3. 保存到文件供用户查看:

    bash
    curl -s URL > webpage.html
    
  4. 提取关键信息:

    bash
    # 提取 HTML 标题
    curl -s URL | grep -o '<title>.*</title>'
    
    # 提取 meta 描述
    curl -s URL | grep -o '<meta name="description".*>'
    

判断网页大小的经验法则

  • API 响应: 通常较小,可以直接获取
  • HTML 网页: 可能很大(50KB-500KB),建议先获取部分
  • JSON 数据: 可能很大,建议先查看结构
  • 文档页面: 通常很大,强烈建议使用 head 或保存到文件

推荐的工作流程

code
用户请求 → 判断 URL 类型 → 构建合适的命令 → 执行并总结
         ↓                    ↓
      文档页面          使用 head 限制输出
      API 端点          直接获取并格式化
      不确定            先保存到文件