简介

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 可以发送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