curl是常用的命令行工具,用来请求Web服务器,功能很强大,有几十种参数
教程参考:
https://catonmat.net/cookbooks/curl
https://www.ruanyifeng.com/blog/2011/09/curl.html
查看网页源码
curl https://www.baidu.com
curl -o[文件名] www.sina.com
自动跳转
curl -L www.sina.com
显示头信息
curl -i www.sina.com
显示通信过程
-v参数可以显示一次http通信的整个过程,包括端口连接和http request信息
curl -v www.sina.com
curl --trace output.txt www.sina.com
or
curl --trace-ascii output.txt www.sina.com
运行后打开output文件查看
发送表单信息
直接把参数加到url后面就行
curl example.com/form.cgi?data=x
curl -X POST--data "data=xxx" example.com/form.cgi
curl -X POST--data-urlencode "date=April 1" example.com/form.cgi
http动词
curl默认get,使用-X设置其他动作
curl -X POST xxx
curl -X DELETE xxx
文件上传
表单这样的话:
<form method="POST" enctype='multipart/form-data' action="upload.cgi">
<input type=file name=upload>
<input type=submit name=press value="OK">
</form>
curl --form upload=@localfilename --form press=OK [URL]
Referer字段
有时需要在请求头里提供一个referer字段,来表示你从哪里跳转过来的
curl --referer http://www.example.com http://www.example.com
User Agent字段
这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版
iPhone4的User Agent是
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
curl可以这样模拟:
curl --user-agent "[User Agent]" [URL]
cookie
使用–cookie参数,可以让curl发送cookie
curl --cookie "name=xxx" www.example.com
增加头信息
curl --header:"xxx:xxx"