cURL(客户端URL)是一个开源的、最通用的以互联网协议传输数据的工具之一
本文参考3W学习方法来叙述内容。
一、What
1、什么是cURL?
cURL(客户端URL)是一个开放源代码的命令行工具,也是一个跨平台的库(libcurl),用于在服务器之间传输数据,并分发给几乎所有新的操作系统。cURL编程用于需要通过Internet协议发送或接收数据的几乎任何地方。
二、Why
1、cURL能做什么?
cURL旨在通过互联网协议传输数据。其他所有内容均不在其范围内。它甚至不处理传输的数据,仅执行传输流程。
三、How
1、怎样使用cURL?
几乎所有具有相对较新操作系统的人都可以使用cURL,因为cURL在Windows,MacOS和大多数Linux发行版中作为默认设置提供。对于较早的系统,例如10之前的任何Windows操作系统,可能需要下载并安装cURL 。
cURL需要在终端窗口中输入“curl”为前缀的 相关命令。
以下为常见场景中的操作
(1)模糊搜索curl相关命令的介绍
curl -help all | findstr "\-tr-enco"
(2)直接获取一个网址返回的Html内容
例如:获取百度首页的html内容
curl https://www.baidu.com
(3)请求一个网址并自动跳转(跟随重定向)
例如:访问百度首页的其他地址会302重定向到一个默认的html页面
curl -L https://baidu.com
(4)请求一个网址并写入文件
curl -o test.txt baidu.com
(5)显示http response头信息
- -i: 头信息 + 响应内容
- -I: 头信息
curl baidu.com -i
(6)显示通信过程
-v 参数,显示一次 http 通信的整个过程,包括端口连接和 http request 头信息
curl baidu.com -v
(7)发起一个指定METHOD类型的http请求并携带Header、Cookie及表单参数
- curl 默认的 HTTP METHOD是 GET,使用 -X 参数可以支持其他类型。(METHOD类型必须为大写格式)
- header
- -H “a:123”
- cookie
- –cookie “a=123;b=234”
- -b “a=123;b=234”
- 表单数据
- –data “a=678”(不能分号拼接多个参数)
- json字符串:
- -d “{“a”:123}”(对于windows,-d参数的数据,需要使用双引号)
- -d ‘{“a”:“123”,“b”:456}’
- -d @test.txt(JSON数据放在一个文件里,test.txt为文件名称)
- 表单编码:–data-urlencode
curl -X POST www.example.com/api1
curl -X DELETE www.example.com/api2 -H "a:123" -H "b:456" -b "a=123"
curl -X POST www.example.com/api3 -d "a=678;b=789"
curl -X POST www.example.com/api3 -H "Content-Type: application/json" -d "{\"a\":123}"
(8)表示客户端设备信息
curl --user-agent "[User Agent]" www.example.com/api1
curl -A "[User Agent]" www.example.com/api1