curl 命令实战:从接口调试到文件下载
【摘要】 curl 是 Linux 和 macOS 系统自带的命令行 HTTP 客户端。在服务器上没有图形界面的场景里,它就是调试接口、下载文件、验证网络连通性的瑞士军刀。掌握下面这些常用参数,就能覆盖日常 90% 的需求。 一、发起最简单的请求默认就是 GET 请求,直接输出响应体:curl https://api.example.com/health想顺带看响应头,加上 -i;想看 DNS 解析、...
curl 是 Linux 和 macOS 系统自带的命令行 HTTP 客户端。在服务器上没有图形界面的场景里,它就是调试接口、下载文件、验证网络连通性的瑞士军刀。掌握下面这些常用参数,就能覆盖日常 90% 的需求。
一、发起最简单的请求
默认就是 GET 请求,直接输出响应体:
curl https://api.example.com/health
想顺带看响应头,加上 -i;想看 DNS 解析、TLS 握手、请求头和响应头的完整交互过程,加上 -v,这是排查网络问题时的调试利器。
二、把响应保存成文件
curl -o result.json https://api.example.com/data
-o 指定保存的文件名;-O(大写)则直接使用 URL 最后一部分作为文件名,下载文件时很方便。
三、发送 POST 请求
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"zhangsan","age":18}'
-X 指定请求方法,-H 添加请求头,-d 发送请求体。注意用单引号包裹 JSON,避免 shell 解析里面的双引号。
上传文件则用 -F,以 multipart/form-data 格式提交:
curl -X POST https://api.example.com/upload \
-F "file=@/tmp/a.png" -F "desc=头像"
@ 后面跟本地文件路径即可。
四、调试接口的几个实用参数
-L:跟随重定向,很多短链接和登录跳转都依赖它。--max-time 10:设置超时上限,避免请求一直 hang 住。-w:自定义输出格式,只看关键指标,例如统计耗时和状态码:
curl -o /dev/null -s -w "耗时:%{time_total}s 状态码:%{http_code}\n" https://example.com
-k:跳过证书校验,仅限内网自签证书调试时使用,生产环境慎用。
五、下载大文件:断点续传
curl -C - -O https://example.com/big.iso
-C - 支持断点续传,下载被中断后可以接着下。配合 --retry 3,失败时还能自动重试几次。
六、几个容易踩的坑
- URL 里有
&、?等特殊字符时,用双引号把整个 URL 包起来,否则 shell 会截断。 -d默认发送Content-Type: application/x-www-form-urlencoded,传 JSON 时务必手动加-H声明。- 写生产脚本时加上
--fail,让 4xx/5xx 返回非零退出码,方便监控和告警捕获失败。
结语
curl 看似简单,但把 -v、-w、-L、--max-time 这些参数用熟,排查线上问题会快很多。建议把常用的请求保存成 shell 脚本沉淀下来,下次直接复用。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)