用 curl 检查接口:看状态码、响应头与正文

准备工作

  • 终端可用 curl --version。

  • 依据:curl 官方 man page 对 -I / -i / -v 等选项的说明。[1]

  • 核实日期:2026-10-24。把示例里的 URL 换成你自己的健康检查或文档站点。

操作步骤

1、只看响应头(含状态行)

做什么:

curl -I https://example.com

为什么:-I 发送 HEAD(文档所述行为),先确认状态码与关键响应头,再决定要不要拉正文,排障时更省带宽。[1]

怎么确认:输出首行类似 HTTP/2 200 或 HTTP/1.1 301;能看到 content-type、location(若重定向)等头。

2、把正文和头一起打印

做什么:

curl -i https://example.com/api/health

为什么:-i 在输出中包含响应头,同时仍获取正文。接口报错时,状态码和错误 JSON/HTML 往往要一起看。[1]

怎么确认:头与正文之间通常有空行分隔;正文可被 jq 或编辑器打开;非 2xx 时也能读到服务端返回的错误信息。

3、需要细节时开详细日志

做什么:

curl -v https://example.com 2>&1 | less

为什么:-v 打印请求/响应握手细节,包括 TLS、重定向跳转、发送的请求头,适合定位证书问题、错误的 Host 或意外跳转。[1]

怎么确认:日志里能看到 Connected to、证书校验相关行,以及最终落地的 URL;对比你预期的域名与协议是否一致。

4、带自定义头做鉴权探测(可选)

做什么:

curl -i -H "Authorization: Bearer YOUR_TOKEN" https://example.com/api/me

为什么:许多 API 用 Header 鉴权;先确认 401/403/200,再查业务字段。[1]

怎么确认:未带 token 时期望 401/403;带正确 token 后为 200 且正文含用户字段。把真实 token 换成环境变量,不要写进可分享脚本。

把 curl 当排障工具时,目标不是“把命令写得很炫”,而是快速回答三个问题:连上了吗、状态码是什么、正文里有没有错误信息。先头后身、先无鉴权后有鉴权,比一上来就甩很长的一串参数更不容易迷路。

对前端联调尤其有用:浏览器里看到的失败,有时其实是重定向、CORS 前的网络层或网关 502。用 curl 绕过浏览器页面逻辑,能把问题缩到“服务端是否按约定返回”。

记录结果时顺手保存完整请求(脱敏后的 URL、方法、关键头、状态码、耗时),比只截一张红字报错图更利于让后端复现。

注意事项

  • 生产环境勿把含密钥的完整命令贴进公共群或工单截图。

  • 某些服务对 HEAD 支持差,-I 可能误判;改用 curl -i -X GET。

  • 需要跟随重定向时加 -L,但要清楚最终是否跨域到了别的主机。

来源

[1] curl man page · https://curl.se/docs/manpage.html · 核实于 2026-10-24

#curl #HTTP #前端 #排障 #教程