我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

    • Linux
    • ssh
    • rsync上传本地文件到服务器
    • windows上使用multipass挂载本地文件
    • curl命令使用
      • 在 Linux 中,curl 是一个强大的命令行工具,用于向服务器发送 HTTP 请求并接收响应。它支持多种协议,如 HTTP、HTTPS、FTP、SFTP 等,因此可以用于下载文件、发送 API 请求、上传数据等。下面详细讲解 curl 命令的常用参数和功能。
        • 1. 基本用法
        • 2. 常用选项
        • 3. 示例
        • 4. curl 输出格式化
        • 5. 查看 curl 的所有选项
        • 总结
    • 查询系统版本及硬件信息的
    • 操作linux上用户
    • crontab使用
    • systemctl使用
    • journalctl使用
    • ls查看文件及排序
    • 查询命令行日志记录
    • less详细使用
    • Vim使用案例
    • top的基本使用
  • nginx

  • docker

  • vpn

  • frp

  • 脚本

  • 硬件

  • 运维
  • linux
窝窝侠
2024-11-10

curl命令使用

# 在 Linux 中,curl 是一个强大的命令行工具,用于向服务器发送 HTTP 请求并接收响应。它支持多种协议,如 HTTP、HTTPS、FTP、SFTP 等,因此可以用于下载文件、发送 API 请求、上传数据等。下面详细讲解 curl 命令的常用参数和功能。

# 1. 基本用法

curl [options] [URL]
1
  • URL 是请求的目标地址。例如:
    curl https://example.com
    
    1

# 2. 常用选项

# 2.1 -X 或 --request:指定请求方法

默认情况下,curl 使用 GET 请求。可以通过 -X 来指定其他请求方法(如 POST、PUT、DELETE 等)。

curl -X POST https://example.com
1

# 2.2 -d 或 --data:发送数据

用于发送表单数据或 JSON 数据(常用于 POST 请求)。注意,使用 -d 时,curl 会自动将请求方法设置为 POST。

  • 发送表单数据:

    curl -d "name=John&age=30" https://example.com/form
    
    1
  • 发送 JSON 数据:

    curl -d '{"name": "John", "age": 30}' -H "Content-Type: application/json" https://example.com/api
    
    1

# 2.3 -H 或 --header:添加请求头

用来指定请求头信息,比如 Content-Type 或 Authorization。

curl -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_TOKEN" https://example.com
1

# 2.4 -u 或 --user:设置用户名和密码

用于 HTTP Basic Authentication 认证,格式为 username:password。

curl -u username:password https://example.com
1

# 2.5 -b 或 --cookie:发送 Cookie

可以直接提供一个 Cookie 值,也可以指定一个文件,curl 会从文件中读取 Cookie 并发送。

  • 使用直接指定的 Cookie 值:

    curl -b "sessionid=abc123" https://example.com
    
    1
  • 从文件中读取 Cookie:

    curl -b cookies.txt https://example.com
    
    1

# 2.6 -c:保存 Cookie 到文件

指定将响应中的 Cookie 保存到文件。下次请求时可以使用 -b 读取该文件。

curl -c cookies.txt https://example.com
1

# 2.7 -o 或 --output:将输出保存到文件

将响应内容保存到指定文件中,而不是直接在终端中显示。

curl -o output.html https://example.com
1

# 2.8 -O:保存文件(使用原文件名)

将文件下载并保存到当前目录,文件名使用服务器提供的文件名。

curl -O https://example.com/file.zip
1

# 2.9 -L 或 --location:跟随重定向

在遇到 3xx 重定向时自动跟随到新的 URL。

curl -L https://example.com
1

# 2.10 -I 或 --head:只请求头部信息

只获取响应头部信息,不获取响应正文,常用于检查资源状态。

curl -I https://example.com
1

# 2.11 -v:显示详细请求与响应信息

用于调试,会显示请求和响应的详细信息,包括头部信息、重定向等。

curl -v https://example.com
1

# 2.12 -s 或 --silent:静默模式

隐藏下载进度条和错误信息。

curl -s https://example.com
1

# 2.13 -k 或 --insecure:忽略 SSL 证书校验

当服务器使用自签名证书时,可以使用 -k 忽略 SSL 验证。

curl -k https://example.com
1

# 2.14 --compressed:接受压缩响应

通知服务器返回压缩格式(如 gzip),可以减少传输数据量。

curl --compressed https://example.com
1

# 2.15 -w 或 --write-out:显示请求的统计信息

显示自定义的请求信息,例如总耗时、下载速度等。

curl -w "Time: %{time_total}s\n" -o /dev/null -s https://example.com
1

# 3. 示例

# 3.1 发送 GET 请求

curl https://jsonplaceholder.typicode.com/posts
1

# 3.2 发送 POST 请求并添加 JSON 数据

curl -X POST -H "Content-Type: application/json" -d '{"title":"foo","body":"bar","userId":1}' https://jsonplaceholder.typicode.com/posts
1

# 3.3 使用 GET 请求带自定义 Cookie

curl -b "sessionid=abc123" https://example.com/profile
1

# 3.4 下载文件并保存

curl -O https://example.com/file.zip
1

# 3.5 发送 POST 表单数据并将响应保存到文件

curl -d "name=John&age=30" -o response.html https://example.com/form
1

# 3.6 结合多选项的复杂请求

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_TOKEN" -d '{"key": "value"}' -L https://example.com/api
1

# 4. curl 输出格式化

当使用 curl 获取 JSON 格式的数据时,使用 jq 工具来美化输出:

curl -s https://jsonplaceholder.typicode.com/posts | jq
1

# 5. 查看 curl 的所有选项

可以通过 man curl 查看所有选项和更多示例,或者使用:

curl --help
1

# 总结

curl 是一个多功能且灵活的命令行工具。它不仅能获取网页内容,还能执行复杂的 API 调用、发送表单数据、下载文件、处理认证等。通过组合不同选项,curl 可以适应多种 HTTP 请求场景。

在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54
windows上使用multipass挂载本地文件
查询系统版本及硬件信息的

← windows上使用multipass挂载本地文件 查询系统版本及硬件信息的→

最近更新
01
showprocess用法
04-29
02
vue3中尖括号和冒号的使用细则
04-29
03
sd使用
02-22
更多文章>
🖥️

© 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×