当前位置: 首页 > news >正文

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"
# 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"
http://www.jsqmd.com/news/47526/

相关文章:

  • 2025年11月高精度称重机,动静态称重机,软管称重机厂家精选:合规认证与产能数据透视
  • 2025年口碑好的电厂清淤机器人厂家最新用户好评榜
  • 2025年靠谱的极低压抗污染反渗透膜厂家最新TOP排行榜
  • 2025年比较好的无菌室净化门行业内知名厂家排行榜
  • 2025年11月留学生回国求职机构推荐榜单:权威机构列表与选择指南
  • 2025年热门的四川岩棉板厂家最新权威推荐排行榜
  • 2025年11月留学生回国求职机构推荐:五大权威机构榜单与选择指南
  • 2025年评价高的快速离心浓缩干燥器TOP品牌厂家排行榜
  • 2025年质量好的提花纸布用户好评厂家排行
  • 2025年比较好的载带成型机用户好评厂家排行
  • 2025年比较好的组合式恒温 振荡培养箱最新TOP品牌厂家排行
  • 2025年靠谱的马口铁罐厂家实力及用户口碑排行榜
  • 2025年热门的清淤机器人厂家最新权威推荐排行榜
  • 2025年靠谱的自动巡检机器人厂家最新权威实力榜
  • 2025年11月留学生求职机构市场报告:从资源覆盖到成果交付的全面解析
  • AS32S601ZIT2型MCU在人防工程报警及控制设备中的应用与国产化优势 - 指南
  • 2025年可靠的小流量齿轮泵TOP品牌厂家排行榜
  • 2025年有实力催化剂拟薄水铝石行业内知名厂家排行榜
  • 2025年专业的输送机高评价厂家推荐榜
  • 2025年诚信的镁制硅晶防火风管厂家推荐及选购指南
  • 2025年靠谱的试验机行业内知名厂家排行榜
  • 2025年评价高的浙江农机链条厂家最新TOP排行榜
  • 2025年11月留学生找实习机构推荐:权威市场报告解读与口碑机构列表
  • uvx命令介绍(uv命令核心命令之一,用于隔离环境敏捷运行Python命令行设备或脚本,无需永久安装依赖)结合了pipx和npx功能,更快、隔离更强,适合临时任务或需要严格环境隔离的场景;uv安装uv
  • 2025年优质的广州食堂洗碗机高评价厂家推荐榜
  • 2025年质量好的重型卡车天窗优质厂家推荐榜单
  • 2025年有实力中央空调风机盘管厂家最新TOP排行榜
  • 2025年知名的PVC封边条厂家推荐及采购指南
  • 2025年评价高的引风机用户好评厂家排行
  • 2025年诚信的水泥毯厂家推荐及选择参考