不止一叶代码屋 个人技术博客 · 代码与生活的记录

工程实践

接口报错先别慌,curl 排查五步法

为什么是 curl

因为 curl 只做一件事:发一个 HTTP 请求,把响应原样打出来。没有框架、没有拦截器、没有自动重定向,是个干净的对照组。

五步法

第一步:拿到原始响应

curl -i https://api.example.com/users/1

-i 会把响应头一起打出来。很多时候问题就在头部。

第二步:模拟真实请求

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

第三步:逐样加减

如果 curl 能通、前端不通,那就是我这边少了什么。常见的是:

  • 少了 Authorization
  • 少了 Content-Type
  • 多了个自定义头触发 CORS 预检

第四步:看详细过程

curl -v https://api.example.com/users/1

-v 会打印 DNS、TCP、TLS、请求、响应的全过程。卡在哪一步一目了然。

第五步:定位到层

现象 大概位置
连不上 DNS / 端口 / 防火墙
403 / 401 鉴权
502 / 504 网关或后端挂了
超时 后端慢或死锁

一个常用别名

alias curli='curl -i -sS --max-time 10'

-sS 是「安静但打错误」,--max-time 防止它一直挂着。

小结

curl 的价值不在于「能发请求」,而在于它是最小的可复现单元。把它跑通,问题范围立刻缩小一半。

订阅 RSS

← 返回首页