curl测试需加关键参数:get时用单引号包裹url或--get/-d自动编码;post json必须设-h'content-type: application/json'并用单引号包字符串;调试必加-v看全链路,-i查头,--connect-timeout防卡死。

直接用 curl 就能测,但不加关键参数等于白测——90% 的“请求失败”其实只是状态码没看、头没设、编码错了。
GET 请求带参数时 URL 总被 shell 解析错
常见错误是写成 curl http://api.example.com/search?q=hello world&page=2,空格和 & 被 shell 当成分隔符或后台任务触发,实际发出去的 URL 缺失或截断。
- 用单引号包裹整个 URL:
curl 'http://api.example.com/search?q=hello world&page=2' - 更稳妥的方式是用
--get+-d,让 curl 自动编码:curl --get -d 'q=hello world' -d 'page=2' http://api.example.com/search - 中文、emoji、斜杠等字符必须编码,手动写
%E4%BD%A0%E5%A5%BD容易出错,交给--data-urlencode更可靠:curl --get --data-urlencode 'q=你好' http://api.example.com/search
POST 提交 JSON 一直报 415 或空 body
根本原因就两个:没设 Content-Type: application/json 头,或 JSON 字符串被 shell 错误解析(比如双引号嵌套、反斜杠逃逸失败)。
- 必须显式加
-H 'Content-Type: application/json',这是服务端判断 payload 类型的唯一依据 - JSON 字符串用单引号包住,避免与内部双引号冲突:
curl -X POST -H 'Content-Type: application/json' -d '{"id":123,"name":"alice"}' http://api.example.com/users - 复杂结构建议从文件读:
curl -X POST -H 'Content-Type: application/json' -d @payload.json http://api.example.com/users,省去所有转义问题
调试时只看返回体,结果把 302 当 200、401 当成功
只执行 curl https://api.example.com/health 看输出,等于蒙眼开车。重定向、认证失败、超时卡死全被掩盖。
- 查完整通信过程加
-v:curl -v https://api.example.com/health,能看到请求头、响应头、状态行、重定向链 - 只关心状态码和头信息,用
-I(发送 HEAD 请求):curl -I https://api.example.com/health - 防脚本挂起,强制超时:
curl --connect-timeout 5 --max-time 10 https://api.example.com/health - 需要性能数据,用
-w输出指标:curl -s -o /dev/null -w 'time=%{time_total}s\n' https://api.example.com/health
调用非 HTTP 接口(如 Unix socket)时地址总写错
很多本地服务(Nginx status、Docker daemon、自研 agent)监听的是 unix:///path/to.sock,不是 http:// 地址。直接写 curl http://localhost 会连错 host。
- 必须用
--unix-socket指定 socket 路径,并保留http://scheme 和 host 占位符:curl --unix-socket /var/run/docker.sock http://localhost/version - host 名字(如
localhost)不能省略,否则 curl 会把路径当 host 解析,导致请求发向错误目标 - 确认 socket 文件存在且当前用户有读写权限:
ls -l /var/run/docker.sock,必要时加sudo
真正卡住人的从来不是 curl 本身,而是状态码被忽略、头信息没校验、URL 编码靠手算、Unix socket 地址格式记混——这些点不盯紧,再熟的命令也只会反复报错。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











