跳到主要内容

curl工具

curl 是一个用于命令行发送网络请求的工具,全称为 “Client URL”。它支持众多协议,包括:

  • HTTP, HTTPS
  • FTP, FTPS
  • SFTP
  • SCP
  • SMTP
  • FILE(本地文件)

主要用于从命令行或脚本中与服务器通信,非常适合调试 API、测试 HTTP 请求、下载文件等

常用参数​

参数含义
-X指定请求方法,如 GET, POST, PUT
-d请求体数据(自动使用 application/x-www-form-urlencoded)
-H自定义请求头
-F模拟表单上传(multipart/form-data)
-o保存输出到文件
-I仅获取响应头信息(HEAD 请求)
-L跟随重定向
-s静默模式(不显示进度条或错误)
-v显示详细请求过程(调试用)
--compressed启用压缩支持(如 gzip)
--http2使用 HTTP/2 协议

记忆和理解​

参数英文全称 / 含义中文说明记忆钩子典型用法
URLGET (default)默认 GET,请求并输出 body不写参数 = 浏览器curl https://example.com
-IHEAD request只请求响应头I = Information / Headcurl -I URL
-iinclude headers输出响应头 + bodyi = includecurl -i URL
-LLocation跟随重定向L = Locationcurl -L URL
-X METHODextended method指定 HTTP 方法X = 显式指定-X POST
-d DATAdata请求体(form/json)d = data-d "a=1"
-H HEADERHeader自定义请求头H = Header-H "Auth: xxx"
-o FILEoutput保存为文件o = output-o out.html
-ssilent静默模式s = silentcurl -s URL
-w FORMATwrite-out输出自定义信息w = write-w "%{http_code}"
-vverbose调试模式v = very talkativecurl -v URL
--max-time Nmaximum time最大超时时间(秒)最多等 N 秒--max-time 5
-kinsecure忽略 SSL 校验k = 不安全也行-k https://
-F FIELDformmultipart 表单 / 文件F = Form / File-F file=@a.txt

常用场景​

调试API​

bash
curl -X GET https://api.example.com/articles -H "Authorization: Bearer abc123"

模拟表单​

bash
curl -d "username=admin&password=123456" https://example.com/login

下载文件​

bash
curl -O https://example.com/image.png