curl常用操作记录
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。
参考文章: https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
参数
-A
-A参数指定客户端的用户代理标头,即User-Agent
。curl 的默认用户代理字符串是curl/[version]
。
1 | # 将User-Agent改成 Chrome 浏览器 |
也可以通过-H(更改Header)参数直接指定User-Agent
1 | curl -H 'User-Agent: php/1.0' https://google.com |
-b
-b参数用来向服务器发送 Cookie。
1 | # 发送cookie |
-c
-c参数将服务器设置的 Cookie 写入一个文件。
1 | # 将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt。 |
-d
-d参数用于发送 POST 请求的数据体。
1 | # 使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST。 |
-e
-e参数用来设置 HTTP 的标头Referer,表示请求的来源。
1 | # 将Referer标头设为https://google.com?q=example |
-F和-T
-F参数用来上传多个文件
-T参数用于上传单个文件
1 | # 给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传 |
-H
-H参数添加 HTTP 请求的标头。
1 | curl -H 'Accept-Language: en-US' https://google.com |
-i
-i参数打印出服务器回应的 HTTP 标头。
1 | # 收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码 |
-I(–head)
-I参数向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来。
1 | curl -I https://www.example.com |
-k
1 | # 跳过 SSL 检测 |
-L
-L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
1 | curl -L -d 'tweet=hi' https://api.twitter.com/tweet |
–limit-rate
–limit-rate用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境。
1 | # 将带宽限制在每秒 200K 字节 |
-o
-o参数将服务器的回应保存成文件,等同于wget命令。
1 | # 需要指定保存的文件名 |
-O
-O参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
1 | # 将服务器回应保存成文件,文件名为bar.html |
-s
-s参数将不输出错误和进度信息。
1 | # 一旦发生错误,不会显示错误信息。不发生错误的话,会正常显示运行结果。 |
-u
-u参数用来设置服务器认证的用户名和密码。
1 | # 设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1 |
-v
-v参数输出通信的整个过程,用于调试。
1 | curl -v https://www.example.com |
-x
-x参数指定 HTTP 请求的代理。
1 | # 请求的代理默认使用 HTTP 协议 |
-X
-X参数指定 HTTP 请求的方法。
1 | curl -X POST https://www.example.com |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 BLOG!