curl
支持多种协议命令行工具,发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)。
常用命令
-
查看网页源码
curl <URL> -
保存网页
curl --output <file-name> <URL>或者curl -o <file-name> <URL> -
自动跳转
curl --location <URL>或者curl -L <URL> -
HTTP认证
curl --user name:password <URL>或者curl -u name:password <URL> -
显示头信息(与网页源码 一起)
curl --include <URL>或者curl -i <URL> -
只显示头信息
curl --head <URL>或者curl -I <URL> -
显示通信过程(包括端口连接和http request头信息)
curl --verbose <URL>或者curl -v <URL> -
将详细通信过程保存到文件
curl --trace/--trace-ascii <file-name> <URL> -
跳过SSL检测(不会检查服务器的 SSL 证书是否正确)
curl --insecure <URL>或者curl -k <URL>
一些用法
发送表单信息
- GET方法(数据附在网址后面)
curl <URL>/form.cgi?data=xxx - POST方法(使用--data参数,数据和网址分开)
curl -X POST --data "data=xxx" <URL>/form.cgi - 通过
--data-urlencode参数完成表单编码curl -X POST--data-urlencode "date=hello curl" <URL>/form.cgi
HTTP动词
- curl默认的HTTP动词是GET,使用
-X参数可以支持其他动词。 curl -X POST <URL>curl -X DELETE <URL>
User-Agent
- 用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页。
curl --user-agent "<User-Agent>" <URL>
cookie
- 使用
--cookie参数让curl发送cookie - cookie的具体值可以从http response头信息的
Set-Cookie字段中得到 curl --cookie "name=xxx" <URL>- 保存服务器返回的cookie到文件
curl -c cookies <URL> - 使用文件内容作为cookie信息,进行后续的请求
curl -b cookies <URL>
头信息
- 使用
--header参数可以在http request之中,自行增加一个头信息 curl --header "Content-Type:application/json" <URL>
参考信息
- Curl Cookbook: https://catonmat.net/cookbooks/curl
- curl 初学者教程: http://www.ruanyifeng.com/blog/2011/09/curl.html
- curl 用法指南: https://www.ruanyifeng.com/blog/2019/09/curl-reference.html