简介
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在”标准输出”(stdout)上面。
当然也有很多好用的图形化工具来模拟请求,像postman什么的
curl参数用法
curl
查看网页源码
curl www.xuzhida.github.io
curl -o filename url
保存 下载网页
curl -o [文件名] www.xuzhida.github.io
curl -L
跳转网页
curl -L www.xuzhida.github.io //跳转到该网站
curl -I //大写
大写I输出response头信息 ,小写i会连网页代码一起输出
curl -I www.xuzhida.github.io
curl -v
可以显示一次http通信的整个过程,包括端口连接和httprequest头信息
curl -v www.xuzhida.github.io
如果觉得上面命令信息不够 还有下面的方式
curl --trace output.txt www.xuzhida.github.io
或者
curl --trace-ascii output.txt www.xuzhida.github.io
curl 请求方式
curl 默认请求方式是get 使用-X 可以使用post delete等方法
curl -X post ...
Referer
遇到有些防盗链的网站 会检查你http request头信息中提供的referer来判断来源,表示你是从哪里跳转过来的。
curl --referer http://www.example1.com http://www.example2.com
curl –user-agent 或者 curl -A
这个字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。
iPhone的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 "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" www.example.com
下面命令将User-Agent改成 Chrome 浏览器。
$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
curl cookie
使用 curl –cookie 可以发送cookie
curl --cookie "name=xxx" www.example.com
至于具体的cookie的值,可以从http response头信息的
Set-Cookie字段中得到。-c cookie-file可以保存服务器返回的cookie到文件,-b cookie-file可以使用这个文件作为cookie信息,进行后续的请求。
curl -c cookies http://example.com
curl -b cookies http://example.com
curl 增加头信息
有时需要在http request之中,自行增加一个头信息。
--header参数就可以起到这个作用。
curl --header "Content-Type:application/json" http://example.com