curl 入门:用命令行和网络接口打交道
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=(date +%T) $code"
sleep 5
done
每 5 秒探测一次本地服务,服务重启时能立刻看到状态变化。
总结:先用 curl 和 -I 看状态,再用 -v 看细节,最后用 -d 和 -H 构造请求,大部分接口问题都能自己定位。熟悉之后,你会发现很多图形化的接口调试工具,本质上也是在做同样的事情。
- 点赞
- 收藏
- 关注作者
评论(0)