news 2026/3/1 4:11:22

curl 学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
curl 学习

curl是一个功能强大的命令行工具,用于通过多种网络协议(主要是 HTTP、HTTPS)进行数据传输。它的名字意为“Client URL”,是开发者和系统管理员最常用的工具之一。

主要功能和特点

一.支持多种协议

  • HTTP/HTTPS

  • FTP/FTPS

  • SCP/SFTP

  • LDAP

  • POP3/IMAP/SMTP

  • 等等(共支持 20+ 种协议)

二.核心功能

  • 发送 HTTP 请求(GET、POST、PUT、DELETE 等)

  • 文件上传和下载

  • 支持 SSL/TLS 加密

  • 支持代理

  • 用户认证(Basic、Digest、Bearer Token 等)

  • cookie 支持

  • 跟随重定向

  • 限速控制

  • 断点续传

安装

大多数 Linux 发行版和 macOS 已预装curl。若未安装:

Ubuntu/Debian:

sudo apt install curl

CentOS/RHEL:

sudo yum install curl

macOS(通过 Homebrew):

brew install curl

基本用法示例

一、基本语法

curl [选项] [URL]
1. 简单 GET 请求
curl https://httpbin.org/get
2. 带请求头的 GET
curl -H "Authorization: Bearer your-token" https://api.example.com/data
3. POST 请求(表单格式)
curl -X POST -d "name=alice&age=30" https://httpbin.org/post
4. POST JSON 数据
curl -X POST -H "Content-Type: application/json" -d '{"name":"zhangsan","age":30}' https://httpbin.org/post
5. 下载文件
# 保存为 file.pdf curl -O https://example.com/file.pdf # 保存为 mydoc.pdf curl -o mydoc.pdf https://example.com/file.pdf
6. 跟随重定向
curl -L http://example.com
7. 使用 Basic 认证
curl -u username:password https://secure.example.com
8. 查看完整请求/响应(调试)
curl -v https://httpbin.org/get

二、常用选项(Options)

选项说明
-X--request指定请求方法(如 GET、POST、PUT、DELETE)
-H--header添加自定义请求头
-d--data发送 POST 数据(默认使用 application/x-www-form-urlencoded)
-o--output将响应保存到指定文件
-O--remote-name使用远程文件名保存下载内容
-L--location自动跟随重定向
-v--verbose显示详细请求/响应过程(用于调试)
-s--silent静默模式,不显示进度条或错误信息
-i--include在输出中包含响应头
-u--user提供用户名和密码用于认证(如 Basic Auth)
-k--insecure忽略 SSL 证书验证(不推荐生产环境使用)
--compressed请求服务器返回压缩内容(如 gzip)并自动解压

实际应用场景

1.API 测试

# 测试 REST API curl -X GET https://api.github.com/users/octocat curl -X POST -H "Content-Type: application/json" -d '{"title":"test"}' https://jsonplaceholder.typicode.com/posts

2.下载文件

# 下载并重命名 curl -o ubuntu.iso https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso # 多文件下载 curl -O https://example.com/file1.txt -O https://example.com/file2.txt

3.网站诊断

# 检查响应时间和状态 curl -w "%{time_total}s\n" -o /dev/null -s https://google.com # 查看完整请求过程 curl -v -L https://example.com

4.使用变量和脚本

# 在脚本中使用 TOKEN="your_token_here" API_URL="https://api.example.com" curl -H "Authorization: Bearer $TOKEN" \ "$API_URL/data"

高级技巧

1.处理 JSON 响应

# 使用 jq 处理 JSON 输出(需要安装 jq) curl -s https://api.github.com/users/octocat | jq '.login, .id' # 格式化 JSON 输出 curl -s https://api.example.com/data | python -m json.tool

2.设置超时

curl --max-time 10 \ # 整个操作最长10秒 --connect-timeout 5 \ # 连接超时5秒 https://example.com

3.并行下载

# 使用 xargs 并行下载多个文件 echo "url1 url2 url3" | xargs -n1 -P3 curl -O



版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 16:15:13

AI如何帮你掌握Promise.js异步编程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Promise.js教程项目,展示如何使用Promise处理异步操作。包含以下功能:1.基本Promise创建与使用示例 2.Promise链式调用演示 3.Promise.all和Promise…

作者头像 李华
网站建设 2026/2/25 1:28:34

1小时搭建Redis监控大屏:快马原型实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Redis实时监控仪表盘:1. 显示连接数/内存使用/QPS等核心指标 2. 支持多实例切换 3. 历史数据趋势图 4. 自定义告警阈值 5. 暗黑/明亮主题切换。使用GrafanaProm…

作者头像 李华
网站建设 2026/2/27 21:12:57

Supervisord在生产环境中的5个经典应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个展示Supervisord典型应用场景的演示项目,包含:1) Flask/Django Web服务守护 2) Celery worker进程管理 3) 定时爬虫任务监控 4) 崩溃自动恢复的机器…

作者头像 李华
网站建设 2026/3/1 9:20:18

华为昇腾CANN深度学习环境搭建-以搭建VLLM为例

1 )首先确定vllm-ascend依赖。 Installation — vllm-ascend 确定cann的版本8.3.rc2。 确定vllm和vllm-ascend的对照关系 2) 查询物理机的驱动版本 假设不是cann8.3rc2,那就安装 网址在这里,需要自己注册登录一下: https://www.hiascen…

作者头像 李华
网站建设 2026/2/24 3:15:09

Fiddler抓包神器:AI如何帮你自动分析网络请求

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于Fiddler的AI辅助分析工具,能够:1. 自动识别和分类常见的API请求模式 2. 根据历史请求智能生成Mock响应数据 3. 检测异常请求和潜在安全问题 4. …

作者头像 李华
网站建设 2026/2/27 17:36:51

Java基础在实际项目中的5个典型应用场景

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Java实战案例集合应用,包含:1) 文件读写工具演示IO流操作;2) 简易计算器展示GUI事件处理;3) 学生成绩管理系统演示集合框架使…

作者头像 李华