尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

curl 命令使用笔记

curl 命令使用笔记
📅 发布时间:2026/6/19 22:27:13
curl 命令使用笔记

目录
  • 一、curl 简介
  • 二、基本语法
  • 三、常用选项说明
  • 四、核心使用示例
    • 1. GET 请求
    • 2. POST 请求
      • (1)提交表单数据(application/x-www-form-urlencoded)
      • (2)提交 JSON 数据
    • 3. 文件上传(multipart/form-data)
    • 4. Cookie 相关操作
    • 5. 自定义请求头
    • 6. 设置请求来源(Referer)

参考资料地址1: 官网

参考资料地址2: 官方文档

参考资料地址3: curl命令详解

一、curl 简介

curl 是一款功能强大的命令行工具,用于在网络上进行数据传输。它支持多种协议,如 HTTP、HTTPS、FTP、SFTP 等,常被用于测试 API、下载文件、模拟用户请求等场景。

二、基本语法

curl [选项] [URL]

三、常用选项说明

选项 完整写法 功能说明
-a --append 上传文件时,将本地文件内容附加到目标文件末尾,而不是覆盖。
-A --user-agent 设置发送给服务器的 User-Agent 请求头,用于模拟不同的浏览器或客户端。
-b --cookie 向服务器发送 Cookie。参数可以是字符串("name=value; name2=value2")或包含 Cookie 的文件名。
-c --cookie-jar 将服务器返回的 Set-Cookie 头信息保存到指定的文件中。
-d --data 以 POST 方式发送数据,适用于 application/x-www-form-urlencoded 类型的表单提交。
-e --referer 设置请求头 Referer,告诉服务器该请求是从哪个页面链接过来的。
-F --form 模拟 multipart/form-data 类型的表单提交,常用于上传文件。
--form-string 与 -F 类似,但值始终被视为纯文本字符串,不会进行文件上传。
-g --globoff 禁用 URL 中 {和} 以及 [ 和 ] 的特殊含义,防止它们被解析为序列或范围。
-G --get 将 -d 或 --data-urlencode 指定的数据附加到 URL 后面,并以 GET 方式请求。
-H --header 自定义 HTTP 请求头。可以多次使用该选项来添加多个头信息。
-i --include 在输出中包含 HTTP 响应头信息。
-I --head 只请求页面的 HTTP 响应头信息,不获取页面内容(即 HEAD 请求)。
--ignore-content-length 忽略响应头中的 Content-Length 字段,这在某些情况下可以避免下载中断。
-l --list-only 对于 FTP 等协议,仅列出目录内容而不下载文件。在 HTTP 请求中,效果不明显,通常与其他选项结合使用。
-o --output 将下载的内容保存到指定的文件中,而不是输出到终端。
-O --remote-name 将下载的内容保存到文件中,文件名从 URL 中推断(即使用远程文件的原始名称)。
-x --proxy 使用指定的代理服务器(如 http://user:pass@host:port)进行连接。
-X --request 指定 HTTP 请求方法(如 GET, POST, PUT, DELETE, PATCH 等)。
-v --verbose 显示详细的请求和响应过程,包括 DNS 解析、TCP 连接、SSL 握手、请求头和响应头的详细信息,便于调试。
-w --write-out 请求完成后,按照指定的格式输出额外的信息,如响应时间、HTTP 状态码等。

四、核心使用示例

1. GET 请求

# 1. 基础 GET 请求,将响应体输出到终端
curl "http://www.example.com"# 2. 显示响应头(-i)和响应体
curl -i "http://www.example.com"# 3. 仅显示响应头(-I)
curl -I "http://www.example.com"# 4. 显示请求全过程的详细调试信息(-v)
curl -v "http://www.example.com"# 5. 将响应内容保存到文件(-o)
curl -o "example.html" "http://www.example.com"# 6. 以 GET 方式发送数据(-G 配合 -d)
curl -G -d "q=keyword" -d "page=1" "https://example.com/search"

2. POST 请求

(1)提交表单数据(application/x-www-form-urlencoded)

# 1. 使用 -d 发送 POST 数据
curl -d "param1=value1&param2=value2" -X POST "http://www.example.com/login"# 2. 多次使用 -d 添加多个参数
curl -d 'login=emma' -d 'password=123' -X POST "https://example.com/login"# 3. 使用 --data-urlencode 自动编码特殊字符
curl --data-urlencode 'comment=hello world & other things' "https://example.com/submit"

(2)提交 JSON 数据

curl -X POST \-H "Content-Type: application/json" \-d '{"phone": "13888888888","password": "test"}' \"http://example.com/apis/users.json"

3. 文件上传(multipart/form-data)

# 1. 基础文件上传
curl -F 'file=@/path/to/photo.png' "https://example.com/profile"# 2. 上传文件并指定 MIME 类型
curl -F 'file=@/path/to/photo.png;type=image/png' "https://example.com/profile"# 3. 上传文件并指定服务器接收的文件名
curl -F 'file=@/path/to/photo.png;filename=avatar.png' "https://example.com/profile"

4. Cookie 相关操作

# 1. 发送 Cookie 到服务器(-b)
curl -b "user=root;pass=123456" "http://example.com/dashboard"# 2. 从文件读取 Cookie 并发送(-b)
curl -b "cookies.txt" "http://example.com/dashboard"# 3. 将服务器返回的 Cookie 保存到文件(-c)
curl -c "cookies.txt" "http://example.com/login"

5. 自定义请求头

# 1. 添加单个请求头
curl -H "Accept-Language: en-US" "https://example.com"# 2. 添加多个请求头
curl -H "Accept-Language: en-US" -H "Secret-Token: abc123" "https://example.com"# 3. 模拟浏览器 User-Agent (-A)
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" "https://example.com"

6. 设置请求来源(Referer)

# 使用 -e 或 -H "Referer: ..."
curl -e "https://google.com" "https://example.com/target-page"
# 等效于
# curl -H "Referer: https://google.com" "https://example.com/target-page"

相关新闻

  • 2025年口碑好的电厂清淤机器人厂家最新用户好评榜
  • 2025年靠谱的极低压抗污染反渗透膜厂家最新TOP排行榜
  • 2025年11月留学生回国求职机构推荐榜单:权威机构列表与选择指南

最新新闻

  • 2026年当下上海诚信的硼化锆源头厂家选型全指南 - 品牌鉴赏官2026
  • MC68HC908GP32 SPI通信深度解析:双缓冲机制与OVRF/MODF错误处理实战
  • AI写作辅助平台8款AI论文平台榜单,毕业护航利器!
  • 【微积分】三角函数求导积分公式的图形化记忆法
  • Dify插件集合:AI应用开发中的标准化组件库架构实践
  • Cesium 曲线漫游教程 | 3D Tiles·Cesium Entity三维可视化源码

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号