用 curl 快速测试 HTTP 接口:从状态码到 JSON 响应

举报
yd_28502004 发表于 2026/11/07 06:17:27 2026/11/07
【摘要】 联调接口时,最趁手的工具往往不是图形界面,而是终端里随手可用的 curl。它无需写代码、不用装额外软件,一条命令就能看到接口的真实返回。下面按“从状态码到 JSON 响应”的顺序,梳理一套快速测试的流程。 一、先看状态码,别急着看正文拿到一个接口地址,第一件事是确认它“通不通”。用 -i 可以同时看到响应头和响应体:curl -i https://api.example.com/health...

联调接口时,最趁手的工具往往不是图形界面,而是终端里随手可用的 curl。它无需写代码、不用装额外软件,一条命令就能看到接口的真实返回。下面按“从状态码到 JSON 响应”的顺序,梳理一套快速测试的流程。

一、先看状态码,别急着看正文

拿到一个接口地址,第一件事是确认它“通不通”。用 -i 可以同时看到响应头和响应体:

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

如果只关心状态码,可以把响应体丢掉,只输出状态码:

curl -s -o /dev/null -w "%{http_code}\n" https://api.example.com/health

看到 200 说明服务正常;看到 404 先核对路径拼写;看到 500 则是服务端出了问题,再看响应体里的错误信息。

二、GET 请求:参数要编码

查询类接口常用 GET,参数放在 URL 里。手工拼接容易漏掉编码,用 -G 加 --data-urlencode 更稳妥:

curl -G https://api.example.com/users --data-urlencode "name=张三" --data-urlencode "page=2"

三、POST JSON:声明 Content-Type

提交 JSON 数据时,必须告诉服务端这是 JSON,否则很可能被当成表单解析:

curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"张三","age":28}'

如果返回 415,基本就是 Content-Type 不对;返回 400,则检查 JSON 格式或必填字段。

四、读 JSON 响应:先格式化再判断

接口返回的 JSON 常常挤在一行里,直接读很费劲。用 Python 自带的工具格式化一下:

curl -s https://api.example.com/users/1 | python3 -m json.tool

格式化后先确认外层结构,再逐层核对关键字段:code 是否表示成功、data 是否有值、出错时 message 写了什么。

五、常见状态码速查

  • 200/201:成功,201 常用于创建成功。
  • 204:成功但无内容。
  • 301/302:重定向,可加 -L 跟随跳转。
  • 400:请求参数有问题。
  • 401:未登录或 Token 失效。
  • 403:已登录但无权限。
  • 404:路径或资源不存在。
  • 500/502/503:服务端错误,联系后端并附上请求记录。

六、超时与重试

接口偶尔抖动时,别急着下结论。给请求设一个上限,并允许重试一次:

curl --max-time 10 --retry 2 https://api.example.com/health

七、把命令沉淀下来

测试过的命令值得保存:写进项目的接口调试文档里,下次联调直接复用;涉及真实 Token 的命令不要提交到代码仓库,改用环境变量传入。

掌握“状态码—响应头—JSON 正文”这条主线,curl 就能覆盖日常九成的接口测试场景。先通后细:先确认接口通不通,再确认数据对不对,联调效率会高很多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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