小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
什么是Curl?
Curl是一款强大的用于数据传输的命令行工具,使用url语法格式,支持非常多的传输协议,包括:HTTP、HTTPS、SCP、FTP、SFTP、TELNET、FILE、SMTP、POP3等等。可以使用curl进行HTTP/HTTPS请求、上传/下载文件等,且支持Cookie、用户身份验证、代理支持、限速等。
安装Curl
大多数Linux发行版中都已经预装了curl软件包,可以执行curl命令检查,如果出现curl: try 'curl --help' or 'curl --manual' for more information证明已经安装;如果没有安装curl,则可以使用软件包管理器进行安装:
apt install curl # Ubuntu
# 或
yum install curl # CentOS
使用Curl
语法格式
curl [options] [url...]
- options:curl参数选项
- url:远程服务器的网址
例如,检索www.baidu.com:
curl www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head>···<title>百度一下,你就知道</title></head><body link=#0000cc>···</body> </html>
以上命令将在终端窗口中显示www.baidu.com主页的源代码。
-A 指定 User-Agent
-A参数指定用户代理标头,即User-Agent。
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36' http://httpbin.org/get
-b 发送 Cookie
-b参数用来向服务器发送Cookie。
curl -b 'BID=1024' http://httpbin.org/get
上面命令会生成一个标头Cookie: BID=1024,向服务器发送一个名为BID、值为1024的 Cookie。
curl也支持从文件中读取Cookie,例如:
curl -b cookies.txt www.baidu.com
-c 保存 Cookie
-c参数的功能是将服务器设置的Cookie写入文件。
curl -c cookies.txt www.baidu.com
-d 发送POST请求的数据体
-d参数用于发送POST请求的数据体。
curl -d 'name=tigeriaf&password=123'-X POST http://httpbin.org/post
# 或
curl -d 'name=tigeriaf' -d 'password=123' -X POST http://httpbin.org/post
使用-d参数以后,HTTP请求会自动加上标头"Content-Type": "application/x-www-form-urlencoded",注意:-d参数会自动将请求转为POST请求,此处可以省略-X POST。
-H 指定header信息
-H参数用于添加HTTP请求的header信息。
curl -d '{"name": "tigeriaf", "password": "123"}' -H 'Content-Type: application/json' http://httpbin.org/post
上面命令添加HTTP请求的header信息是Content-Type: application/json,然后用-d参数发送JSON数据。
-i 输出header信息
-i参数可以输出服务器返回的header信息。
curl -i http://httpbin.org
上面命令收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码。
-o/-O 保存curl的结果
使用-o或-O参数可以保存curl的结果。
小写-o可以指定保存文件的文件名,即重命名:
curl -o get_res.txt http://httpbin.org/get
大写-O使用其原始文件名保存文件:
curl -O http://httpbin.org/get
-x 设置代理
Curl支持不同类型的代理,包括HTTP,HTTPS和SOCKS。要通过代理服务器传输数据,请使用-x(--proxy)选项,后跟代理url。
以下命令将使用192.168.1.32端口6666上的代理请求:
curl -x 192.168.1.32:6666 http://httpbin.org/get
-X 指定HTTP请求的方法
-X参数指定HTTP请求的方法。
curl -X POST http://httpbin.org/post
上面命令对http://httpbin.org/post发出POST请求。
总结
这里只展示了几种常用的curl选项,想要了解有关curl的更多信息,请访问curl文档。
原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~
最后,感谢女朋友在工作和生活中的包容、理解与支持 !