SuperAPI AI 工具集

curl-http

编程与开发

查看项目

更新于 10-16 04:08

技能介绍

用途

curl 是一个命令行 HTTP 客户端工具,用于发起 HTTP 请求和传输数据。它适合在终端中直接调用 API、测试接口、下载或上传文件,以及编写自动化脚本。

主要能力

基础请求

  • GET 请求:直接使用 curl https://api.example.com。
  • 保存输出:-o output.html 指定文件名,-O 使用远程文件名。
  • 跟随重定向:-L。
  • 显示响应头:-i 包含响应头,-I 仅显示响应头。
  • 详细输出:-v 用于调试。

POST 及其他方法

  • POST 表单数据:-X POST -d "name=John&email=john@example.com"。
  • POST JSON:配合 -H "Content-Type: application/json" 和 -d '{"name":"John"}'。
  • 从文件读取数据:-d @data.json。
  • 表单上传:-F "file=@document.pdf"。
  • 其他方法:PUT、DELETE、PATCH 通过 -X 指定。

请求头与认证

  • 自定义请求头:-H "User-Agent: MyApp/1.0",可多次使用。
  • Basic 认证:-u username:password。
  • Bearer Token:-H "Authorization: Bearer YOUR_TOKEN"。
  • API Key:可放在请求头或 URL 参数中。

高级功能

  • 超时与重试:--connect-timeout、--max-time、--retry、--retry-delay。
  • Cookie:-b 发送,-c 保存,可同时使用。
  • 代理:-x 指定 HTTP 代理,--socks5 指定 SOCKS 代理,-U 代理认证。
  • SSL/TLS:-k 忽略证书错误,--tlsv1.2 指定版本,--cert 和 --key 使用客户端证书。

响应处理

  • 静默模式:-s 不显示进度条。
  • 仅显示状态码:-s -o /dev/null -w "%{http_code}"。
  • 自定义输出格式:-w 可输出时间、状态码等。
  • 美化 JSON:配合 jq 使用。
  • 范围请求:-r 0-1000 下载指定字节范围,-C - 断点续传。

文件操作

  • 下载:-O 或 -o,支持多个文件、断点续传。
  • 上传:FTP 使用 -T,HTTP PUT 使用 -T,表单上传使用 -F。

测试与调试

  • API 测试:直接对 REST 接口发起 GET、POST、PUT、DELETE 请求。
  • 性能测试:-w 输出 DNS、连接、TLS、传输、总时间等指标。
  • 调试:-v 显示请求与响应头,--trace-ascii 记录跟踪日志。

使用方式

在终端中直接输入 curl 命令,可组合多个选项。常用标志包括:-X 指定方法,-d 发送数据,-H 自定义头,-o/-O 输出文件,-L 跟随重定向,-i/-I 显示头,-v 详细输出,-s 静默,-S 静默但显示错误,-f HTTP 错误时静默失败,-k 忽略 SSL,-u Basic 认证,-F 多部分表单,-b/-c Cookie,-w 自定义输出格式。

适用场景

  • 快速测试 REST API 接口。
  • 在脚本中调用 HTTP 服务。
  • 下载或上传文件。
  • 调试网络请求与 SSL 握手。
  • 测量请求各阶段耗时。

限制

  • 官方文档:https://curl.se/docs/,手册:man curl。
  • 其他平台、收费、价格等信息暂未提供。