Curl / HTTP
Curl 常用请求命令,GET/POST/认证/上传/调试,一键复制
共 39 个脚本
GET 请求(基础)
最基础的 GET 请求。-s 静默进度条,curl 默认方法就是 GET。
GET 请求带查询参数
通过 URL 拼接查询参数。含特殊字符的参数值需用 --data-urlencode 配 -G 编码后再发送。
POST JSON 数据
向 API 发送 JSON 格式的 POST 请求。-H 设置 Content-Type,-d 发送请求体。
POST 发送 JSON 文件
把 JSON 请求体放在文件里发送。@data.json 表示从文件读取内容作为请求体。
POST 表单数据
发送 application/x-www-form-urlencoded 表单。-d 自动设置 Content-Type。
PUT 更新资源
用 PUT 更新资源,通常需要带完整的数据体。-X 指定方法。
PATCH 部分更新
用 PATCH 只更新资源的部分字段,与 PUT 区别在于只发送变更字段。
DELETE 删除资源
删除服务器上的指定资源。此操作不可逆,请确认 URL 正确。
跟随重定向
-L 让 curl 自动跟随 3xx 重定向。-L 后接数字限制最大跳转次数。
自定义请求头
用 -H 添加任意请求头。可多次使用 -H 添加多个头。
设置 User-Agent
-A 直接设置 User-Agent,常用于伪装浏览器或绕过简单的 UA 校验。-A "" 可清空默认 UA。
设置 Accept 内容协商
通过 Accept 头告诉服务器期望返回的内容类型。
发送 Cookie
-b 发送 Cookie。可直接写字符串,也可指定 cookie 文件。
保存与复用 Cookie
-c 把响应中的 Set-Cookie 保存到文件,-b 读取。组合使用可跨请求维持会话(如登录后访问)。
设置 Referer 与 Origin
模拟从特定页面发起的请求,绕过简单的防盗链或 CORS 服务端校验。
Bearer Token 认证
使用 JWT / OAuth Bearer Token 认证。在 Authorization 头里加 Bearer <token>。
HTTP Basic 认证
使用用户名密码进行 HTTP Basic 认证。-u 自动生成 Authorization: Basic 头。
API Key 认证
通过自定义头传递 API Key,常见于第三方服务(如 X-API-Key)。
通过查询参数传递 API Key
部分服务把 API Key 放在 URL 查询参数中,如 OpenWeather、Mapbox 等。
从 .netrc 读取凭证
-n 让 curl 从 ~/.netrc 读取凭证,避免在命令行暴露密码。适合脚本自动化调用。
下载文件
-o 指定输出文件名,-O 用 URL 中的文件名保存。搭配 -L 跟随重定向。
断点续传
-C - 让 curl 自动检测已下载的字节数并从断点继续,下载大文件中断后可恢复。
上传文件(multipart)
-F 以 multipart/form-data 上传文件。@file 表示从文件读取,可同时上传多个字段。
PUT 上传整个文件
用 -T 把整个文件作为 PUT 请求体上传,常用于对象存储(如 S3)。
带重试的下载
--retry 设置失败重试次数,--retry-delay 设置重试间隔,适合不稳定网络。
详细输出(含请求头)
-v 显示完整的请求/响应过程,包括请求头、响应头、SSL 握手等。最常用的调试参数。
只看响应头
-I 只获取响应头(HEAD 请求),-D 把响应头写入文件。快速检查资源是否存在、类型、大小。
测量请求耗时
用 -w 输出自定义格式,精确测量 DNS、连接、TLS、首字节、总耗时等各阶段时间。
只看 HTTP 状态码
用 -w 配合 %{http_code} 只输出状态码,方便脚本判断。
分离请求头与响应头
-v 输出混在一起,用 --trace-ascii 可更精细地看到每个字节,便于排查编码/分块等问题。
同时显示响应头和正文
-i 在输出中包含响应头,紧跟着响应正文。比 -v 更简洁,适合快速查看返回的头。
使用代理
-x 设置 HTTP/HTTPS/SOCKS 代理。-U 指定代理认证。可用于访问受限资源或隐藏来源 IP。
自定义 DNS 解析
--resolve 强制把指定域名解析到指定 IP,无需改 /etc/hosts。常用于测试负载均衡、灰度发布、本地证书。
并发请求(配合 xargs)
用 xargs -P 启动多个并发 curl 进程,做简单的压测或批量抓取。-I {} 指定占位符。
multipart 同时上传文件与 JSON
在 multipart 表单中用 type= 指定字段类型,可同时上传文件和结构化 JSON 字段。
设置超时
--max-time 限制总耗时,--connect-timeout 限制连接阶段超时。防止请求卡死脚本。
跳过证书校验(自签名证书)
-k / --insecure 跳过 TLS 证书校验,用于访问自签名证书的服务(如内网、本地开发)。生产环境慎用。
输出格式化 JSON(配合 jq)
把 curl 的响应通过管道传给 jq,做字段提取、过滤、美化输出。
从配置文件读取参数
-K / --config 从文件读取 curl 参数,避免命令行过长或重复输入常用头。