Linux curl 工具的使用指南

·  阅读 2831
Linux curl 工具的使用指南

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

什么是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文档

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改