curl

查看网页源码

直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短):

1
$ curl www.sina.com

如果要把这个网页保存下来,可以使用-o参数,这就相当于使用wget命令了。这样在当前目录下就会有一个sina.txt的文件存放网页源码。

1
2
3
4
$ curl -o sina.txt www.sina.com
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 178 100 178 0 0 2825 0 --:--:-- --:--:-- --:--:-- 2825

自动跳转

有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。

1
$ curl -L www.sina.com

键入上面的命令,结果就自动跳转为www.sina.com.cn。

显示头信息

-i参数可以显示http response的头信息,连同网页代码一起。-I参数则是只显示http response的头信息。

1
$ curl -i www.sina.com

显示通信过程

-v参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。

1
$ curl -v www.sina.com

如果你觉得上面的信息还不够,那么下面的命令可以查看更详细的通信过程。

1
$ curl --trace output.txt www.sina.com

或者

1
$ curl --trace-ascii output.txt www.sina.com

运行后,请打开output.txt文件查看。

发送表单信息

发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面就行。

1
$ curl example.com/form.cgi?data=xxx

POST方法必须把数据和网址分开,curl就要用到–data参数。

1
$ curl -X POST --data "data=xxx" example.com/form.cgi

如果你的数据没有经过表单编码,还可以让curl为你编码,参数是--data-urlencode

1
$ curl -X POST--data-urlencode "date=April 1" example.com/form.cgi

HTTP动词

curl默认的HTTP动词是GET,使用-X参数可以支持其他动词。

1
$ curl -X POST www.example.com
1
$ curl -X DELETE www.example.com

参考

http://www.ruanyifeng.com/blog/2011/09/curl.html

http://www.ruanyifeng.com/blog/2019/09/curl-reference.html