Curl 命令的使用
curl 是常用的命令行工具,用来请求 Web 服务器。c
的意思是client
的意思。功能非常强大,命令行参数多达几十种,但是我记不住,罗列一些常用的。
官方网站: https://curl.se
官网文档: https://curl.se/docs/manpage.html
-X, –request
-X
或者 --request
参数指定 HTTP 请求的方法
GET方式
不带有任何参数时,curl 就是发出 GET 请求。
1 | # 不带参数 |
-G,--get
参数用来构造 URL 的查询字符串
下面命令会发出一个GET请求,实际请求的 URL 为https://google.com/search?q=kitties&count=20
。如果省略--G
,会发出一个 POST 请求。
1 | #1 |
POST方式
1 | # 不带参数 |
HEAD方式
1 | #1 |
-I,--head
参数向服务器发出 HEAD 请求,并将返回服务器的HTTP标头,所以添加-X HEAD
好像是没有太大意义
DELETE方式
1 | #1 |
-d,–data
用于发送 POST 请求的数据体
-d
参数会自动加上标头 Content-Type : application/x-www-form-urlencoded
并且会自动将请求转为 POST 方法,因此可以省略-X POST
1 | #1 |
--data-urlencode
和 -d
的区别是会进行URL编码
1 | $ curl --data-urlencode 'content=hello world' http://hanpy.cn |
-H, –header
添加 HTTP 请求的标头
1 | #1 |
-A,–user-agent
指定客户端的用户代理标头,即User-Agent
1 | #1 User-Agent 修改为google浏览器 |
-b,–cookie
参数用来向服务器发送 Cookie。
1 | #1 单个 |
-c,–cookie-jar
将服务器设置的 Cookie 写入一个文件。
1 | #1 将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt。 |
-e,–referer
用来设置 HTTP 的标头Referer
,表示请求的来源
1 | #1 |
-o,–output
将服务器的回应保存成文件,等同于wget
命令
1 | $ curl -o hanpy.html https://hanpy.cn |
-O,–remote-name
将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
1 | $ curl -O https://hanpy.cn |
-u, –user
用来设置服务器认证的用户名和密码
1 | #1 |
-x,–proxy
指定 HTTP 请求的代理
-x, –proxy [protocol://]host[:port]
1 | #1 如果没有指定代理协议,默认为 HTTP |