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

cURL:通过URL传输数据的命令行工具库介绍

文章目录

  • 1. 什么是 curl?
  • 2. 下载与安装 curl
  • 3. curl 的常见用法
    • 3.1 获取网页内容
    • 3.2 下载文件
    • 3.3 发送 POST 请求(带表单数据)
    • 3.4 发送带 JSON 的 POST 请求


1. 什么是 curl?

cURL(CommandLine URL)是非常强大的开源命令行工具库,用于通过URL传输数据,其功能可以简单地分为:向服务器发送请求(GET、POST、PUT、DELETE 等)、测试和调试 API 接口、下载文件或数据、模拟浏览器或其他客户端行为。curl最新稳定版本为8.13.0(发布于 2025-04-02)。

在这里插入图片描述

该工具库支持FTP、FTPS、HTTP、HTTPS、SMTP、Telnet、TFTP等协议,底层使用的是 libcurl库。curl的应用面非常广,包含但不限于汽车、电视机、路由器、打印机、手机、平板电脑、医疗设备、机顶盒等,全球几乎每个使用互联网的人每天都会使用 curl。

在这里插入图片描述

2. 下载与安装 curl

打开电脑的命令行,输入 curl --versioncurl -V,如果能返回 curl 的版本信息,则已安装 curl 工具。

在这里插入图片描述

这里以MacOS为例介绍如何安装curl,如果安装了 Homebrew工具,可以直接通过如下命令安装。

brew install curl

另一种方式是通过源码安装。curl 源码下载地址:https://curl.se/download.html。下相应的 curl-x.x.x.tar.gz 文件,解压后,将终端目录切换到相应的文件夹,运行命令 ./configure --prefix=/usr/local/curl设置安装目录,接着运行 make, sudo make install 编译和安装。

3. curl 的常见用法

本小节会给出几个案例演示curl常见的用法,在此之前线介绍下curl命令的一些参数及其含义:

-X:指定 HTTP 请求的方法,例如 curl -X POST $url
-d: 发送post请求数据,@file表示来自于文件
-o: 写文件,将服务器的响应保存成文件
-v: verbose,打印更详细日志
-s, --silent: 关闭一些提示输出,不输出错误和进度信息。
-L:跟随跳转链接

3.1 获取网页内容

直接在curl后接一个url地址,将会向该地址发送GET请求,如下命令,会向 https://example.com 发送一个 GET 请求,并在终端输出网页的 HTML 内容。

curl https://example.com

将响应内容保存到 result.json 文件:

curl -o result.json https://api.example.com/data

3.2 下载文件

-O 会使用原文件名保存文件。

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

3.3 发送 POST 请求(带表单数据)

指定请求方法以及发送的信息。

curl -X POST -d "username=test&password=1234" https://example.com/login

3.4 发送带 JSON 的 POST 请求

curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice"}' https://example.com/api

其中,-H 定义的是请求头内容,“Content-type: application/json” 表示向服务器声明发送的数据类型是 json 格式。

http://www.xdnf.cn/news/5731.html

相关文章:

  • 请求参数:Header 参数,Body 参数,Path 参数,Query 参数分别是什么意思,什么样的,分别通过哪个注解获取其中的信息
  • 每日算法刷题Day4 5.12:leetcode数组4道题,用时1h
  • zabbix6.4监控主机并触发邮件告警
  • Egg.js知识框架
  • Linux驱动:驱动编译流程了解
  • 向量组的维度是单个向量中元素的个数
  • Vue3的命名规范
  • 从ES5到ES6+:JavaScript语法演进与实现解析
  • 《汽车软件升级通用技术要求》 GB 44496-2024——解读
  • 仿函数和函数对象
  • Java中堆栈
  • vue实现进度条带指针
  • Elasticsearch 字段映射与数据类型
  • 面试专栏-03-Git的常用命令
  • 异构计算时代:混合编程的崛起与未来
  • 大型视频学习平台项目问题解决笔记
  • Megatron系列——流水线并行
  • KUKA机器人安装包选项KUKA.PLC mxAutomation软件
  • 产品功能更新迭代后需要重做算法备案吗?
  • Linux系统管理与编程20:Apache
  • 关于mac配置hdc(鸿蒙)
  • Nginx部署前端项目深度解析
  • 使用 Syncthing 在两台电脑之间同步文件:简单教程
  • 用drawdb.app可视化创建mysql关系表
  • 开源 RPA 工具深度解析与官网指引
  • 学习黑客Windows 病毒与威胁防护
  • Clickhouse 迁移到 Doris 的最佳实践
  • PyTorch 中的 Autograd 实现细节解析和应用
  • TCPIP详解 卷1协议 九 广播和本地组播(IGMP 和 MLD)
  • 力扣算法ing(69 / 100)