Linux curl 命令:网络请求调试与API测试利器

举报
yd_232564628 发表于 2026/09/30 10:42:18 2026/09/30
【摘要】 curl (Client URL) 是 Linux 系统中当之无愧的网络交互“瑞士军刀”。无论是验证服务是否存活、调试 RESTful 接口、下载远程资源,还是测试 SSL 证书、模拟移动端请求,它都能胜任。相比于 Postman 等图形化工具,curl 的优势在于可以无缝集成到 Shell 脚本中,实现自动化测试与监控。 最基础的用法curl https://www.example.com...

curl (Client URL) 是 Linux 系统中当之无愧的网络交互“瑞士军刀”。无论是验证服务是否存活、调试 RESTful 接口、下载远程资源,还是测试 SSL 证书、模拟移动端请求,它都能胜任。相比于 Postman 等图形化工具,curl 的优势在于可以无缝集成到 Shell 脚本中,实现自动化测试与监控。

最基础的用法

curl https://www.example.com

不加任何参数时,curl 会发起一个标准的 HTTP GET 请求,并将服务器返回的 Body 内容直接打印到标准输出(终端)。如果返回的是 HTML,你会看到满屏的代码;如果是 JSON,则会直接显示数据结构。

实际使用中,高频场景与命令组合

1. 查看详细的请求与响应过程

当接口报错或行为不符合预期时,你需要知道“到底发了什么”以及“服务器回了什么头”。

curl -v https://www.example.com

-v (verbose) 模式会输出完整的握手过程、请求头(>)、响应头(<)以及响应体。这是排查 403 Forbidden、302 Redirect 或 CORS 问题的第一步。

2. 发送 POST 请求与 JSON 数据

现代后端开发离不开 JSON 交互,curl 可以通过 -d 或 --data 参数轻松模拟。

curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"123456"}' http://localhost:8080/login
  • -X POST: 指定请求方法。
  • -H: 自定义请求头,这里必须显式声明 Content-Type,否则服务端可能无法解析 JSON。
  • -d: 携带请求体数据。

3. 只获取响应头或只保存文件

有时候你不需要看内容,只想检查状态码;或者只想安静地下载文件。

只看头信息:

curl -I https://www.example.com

-I (HEAD) 仅返回 HTTP Header,常用于健康检查脚本。

下载并保存文件:

curl -O https://example.com/file.tar.gz

-O (大写) 会使用远程文件名保存;-o filename (小写) 则可以自定义本地文件名。加上 -s (silent) 可以隐藏进度条,适合脚本后台运行。

4. 处理认证与 Cookie

Basic Auth:

curl -u user:password https://api.example.com/resource

携带 Cookie:

curl -b "session_id=abc123" https://example.com/profile

保存并使用 Cookie Jar:

curl -c cookies.txt -d "user=admin&pass=123" http://login.example.com
curl -b cookies.txt http://admin.example.com/dashboard

先登录将 Cookie 存入文件,后续请求直接读取文件,完美模拟浏览器会话。

5.性能测试与耗时分析

不需要压测工具,curl 自身就能提供关键的性能指标。

curl -o /dev/null -s -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://www.example.com

这条命令会将响应体丢弃(-o /dev/null),静默执行(-s),并通过 -w 格式化输出 DNS 解析、TCP 连接、首字节时间(TTFB)和总耗时,快速定位网络慢在哪一环。

如果不知道如何下手,可以先尝试

curl --help all | grep -A 2 "proxy"

当你身处公司内网需要配置代理,或者遇到 SSL 证书报错想临时跳过验证(-k)时,直接在帮助文档中搜索关键词是最快的学习方式。
或者,如果你想把 curl 命令转化为其他语言(如 Python requests、Java OkHttp)的代码,可以使用在线工具 “curlconverter”,它能自动帮你完成转换。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。