network Cheatsheet

curl 调试 HTTP 速查表

curl 调试 HTTP 常用命令一页速查:GET/POST 基础请求、-v/-I/-w 调试详情、-x 代理与 --connect-timeout 超时重试、-u/-F/-o 认证上传下载,接口排障、抓包验证和监控探测直接对照。

把 curl 调试 HTTP 最常用的基础请求、调试详情、代理超时和认证上传命令整理成一页,接口排障和抓包验证时直接对照。

curlhttp调试网络

基础请求

  • curl https://example.com
    发起 GET 请求,默认输出响应体到终端
  • curl -X POST https://api.example.com
    指定请求方法,POST/PUT/DELETE 等
  • curl -H "Content-Type: application/json" -H "Authorization: Bearer xxx" https://api.example.com
    添加请求头,可多次 -H 叠加
  • curl -d '{"k":"v"}' https://api.example.com
    发送 POST body,默认 Content-Type 为 application/x-www-form-urlencoded
  • curl -d @file.json https://api.example.com
    从文件读取 body 内容发送
  • curl -G https://api.example.com --data-urlencode "q=hello world"
    把参数拼到 URL 查询串并做 URL 编码

调试与详情

  • curl -v https://example.com
    显示完整请求/响应头和握手过程,排障首选
  • curl -I https://example.com
    只看响应头,快速验证状态码和缓存头
  • curl -L https://example.com
    跟随 301/302 重定向,加 --max-redirs 限制次数
  • curl -w "%{http_code} %{time_total}\n" -o /dev/null -s https://example.com
    只输出状态码和总耗时,做监控探测常用
  • curl -s https://example.com
    静默模式,不显示进度和错误,配合 -o 落盘
  • curl --resolve example.com:443:1.2.3.4 https://example.com
    指定域名解析 IP,绕过 DNS 调试负载均衡和证书

代理与超时

  • curl -x http://proxy:8080 https://example.com
    走 HTTP 代理
  • curl -x socks5h://127.0.0.1:1080 https://example.com
    走 SOCKS5 代理,h 表示 DNS 也走代理
  • curl --connect-timeout 5 https://example.com
    连接建立超时 5 秒,防止卡死
  • curl --max-time 30 https://example.com
    整个请求最大耗时 30 秒,含连接和传输
  • curl --retry 3 https://example.com
    失败自动重试 3 次

认证与上传

  • curl -u user:pass https://example.com
    HTTP Basic 认证
  • curl -F "file=@photo.jpg" https://example.com/upload
    上传文件,multipart/form-data 格式
  • curl -F "file=@photo.jpg" -F "name=tom" https://example.com/upload
    同时上传文件和表单字段
  • curl -o photo.jpg https://example.com/photo.jpg
    保存响应体到文件,下载大文件用
  • curl --cookie "session=abc" https://example.com
    携带 Cookie,-c 写入 -b 读取 cookie 文件

容易踩的坑

  • -d 发 JSON 时记得手动加 -H "Content-Type: application/json",否则服务端可能解析失败。
  • 调试 HTTPS 证书问题加 -v 看握手;临时跳过证书校验用 -k,生产环境不要用。
  • -w 的 time_total 单位是秒,监控脚本常用 --max-time 兜底防卡死。