curl 入门:用命令行和网络接口打交道

举报
yd_271806766 发表于 2026/10/25 06:14:37 2026/10/25
【摘要】 curl 是 Linux、macOS 乃至 Windows 上都自带的命令行工具,用来发起网络请求。调试接口、下载文件、检查网站是否正常,它都能胜任。这篇文章介绍新手最常用的几种写法。一、最简单的 GET 请求curl https://example.com这条命令会把网页的 HTML 直接打印到终端。如果只想看响应头,可以用 -I:curl -I https://example.com状态...

curl 是 Linux、macOS 乃至 Windows 上都自带的命令行工具,用来发起网络请求。调试接口、下载文件、检查网站是否正常,它都能胜任。这篇文章介绍新手最常用的几种写法。

一、最简单的 GET 请求
curl https://example.com
这条命令会把网页的 HTML 直接打印到终端。如果只想看响应头,可以用 -I:
curl -I https://example.com
状态码 200 表示正常,404 表示页面不存在,502/503 常见于服务端故障。部署完网站后,我习惯先用这条命令确认服务真的起来了。

二、保存文件与跟随跳转
-o 指定保存的文件名,-O 沿用远端文件名:
curl -o page.html https://example.com
curl -O https://example.com/file.tar.gz
很多网址会重定向,加上 -L 才会自动跟随:
curl -L -O https://example.com/download

三、发送 POST 请求
调试接口时,经常要提交 JSON:
curl -X POST https://api.example.com/items -H “Content-Type: application/json” -d ‘{“name”:“test”,“count”:3}’
-H 添加请求头,-d 指定请求体。使用 -d 后 curl 默认就是 POST,-X POST 可以省略。表单上传文件用 -F:
curl -F “file=@./photo.png” https://api.example.com/upload

四、带上认证信息
访问需要令牌的接口时:
curl -H “Authorization: Bearer 你的令牌” https://api.example.com/me
注意不要把真实令牌写进脚本后上传到公开仓库,可以放在环境变量里:
curl -H “Authorization: Bearer $API_TOKEN” https://api.example.com/me

五、排查问题的常用参数
-v 显示完整的请求与响应过程,能看到 DNS、TLS 握手、请求头,排查证书或代理问题很有用。
-s 静默模式,不显示进度条,配合 jq 解析 JSON 很方便:
curl -s https://api.example.com/items | jq ‘.[0]’
–max-time 10 设置超时时间,避免脚本卡死。
-w “%{http_code}\n” -o /dev/null -s 只输出状态码,适合写健康检查脚本。

六、一个小脚本例子
while true; do
code=(curl−s−o/dev/null−w"echo"(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8080) echo "(date +%T) $code"
sleep 5
done
每 5 秒探测一次本地服务,服务重启时能立刻看到状态变化。

总结:先用 curl 和 -I 看状态,再用 -v 看细节,最后用 -d 和 -H 构造请求,大部分接口问题都能自己定位。熟悉之后,你会发现很多图形化的接口调试工具,本质上也是在做同样的事情。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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