用 curl 调试 HTTP 接口的六个实用技巧

举报
yd_227985793 发表于 2026/10/25 21:59:48 2026/10/25
【摘要】 分享 curl 调试 HTTP 接口的六个日常技巧:-v 看请求全过程、JSON POST 正确姿势、响应头体分离保存、-w 拆解各阶段耗时、Cookie 会话维持、-k 与 --resolve 定向验证,每条附可直接复用的命令。

调接口的时候,很多人第一反应是打开 Postman 或者写段脚本,其实大部分场景下 curl 一行命令就够了。这里分享六个我日常用得最多的技巧,每一条都可以直接抄走复用。

一、看清楚请求到底发生了什么

curl -v https://example.com/api/user

-v 会把请求头、响应头、TLS 握手过程全部打印出来。接口 401 了、证书不对、被重定向了,一眼就能看出是哪一层出了问题。如果只想看响应头,用 -I 更干净。

二、带上 JSON 发 POST

curl -X POST https://example.com/api/login -H "Content-Type: application/json" -d '{"username":"test","password":"123456"}'

注意 -H 指定 Content-Type 很关键,很多后端服务不写这个字段就解析不了 body。如果 body 里有中文或者结构比较复杂,建议先存成文件再用 -d @data.json 发出去,避免命令行转义把内容弄乱。

三、把响应头和响应体分开存

curl -D headers.txt -o body.json https://example.com/api/data

-D 把响应头写进文件,-o 把响应体存下来。接口返回的 JSON 太长刷屏的时候特别好用,配合 jq 再处理 body.json,排查效率高很多。

四、测接口到底慢在哪一步

curl -w "DNS:%{time_namelookup}s 连接:%{time_connect}s 首字节:%{time_starttransfer}s 总耗时:%{time_total}s " -o /dev/null -s https://example.com/api

-w 能把各阶段耗时拆开:域名解析、建连、首字节返回。接口"偶尔慢"的问题,加这一行往往就能定位到是 DNS 慢、网络慢还是服务端处理慢,不用再抓包猜。

五、带着 Cookie 会话调试

curl -c cookies.txt -b cookies.txt https://example.com/login

curl -b cookies.txt https://example.com/api/profile

-c 保存服务器下发的 Cookie,-b 把它带回去,两次请求之间就能维持登录态。调试需要登录的接口时,不用每次手动复制 token 了。

六、忽略证书与强制解析

curl -k https://self-signed.example.com

curl --resolve example.com:443:10.0.0.5 https://example.com

自签证书的测试环境加 -k 跳过校验;--resolve 可以把域名指到指定 IP,灰度验证、绑定源站、绕过负载均衡直连后端的时候非常方便。

小结

curl 的好处是几乎所有环境都自带、不用装客户端、命令能直接存进文档复用。把常用的几条命令整理成自己的速查笔记,接口调试的大部分场景都能覆盖。如果你还停留在"只会 curl 一个网址"的阶段,不妨从上面这六条开始试起来。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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