介绍
curl 命令 是一个利用 URL 规则在命令行下工作的文件传输工具. 它支持文件的上传和下载, 所以是综合传输工具, 但按传统, 习惯称 curl 为下载工具. 作为一款强力工具, curl 支持包括 HTTP,HTTPS, http://man.linuxde.net/ftp 等众多协议, 还支持 POST,cookies, 认证, 从指定偏移处下载部分文件, 用户代理字符串, 限速, 文件大小, 进度条等特征. 做网页处理流程和数据检索自动化, curl 可以祝一臂之力.
模拟 POST/GET 请求
假设目标 url 为: 127.0.0.1:8080/login
- # 使用 curl 发送 GET 请求
- $ curl http://127.0.0.1:8080/login?user=admin&passwd=12345678
- # 使用 curl 发送 POST 请求
- $ curl -d "user=admin&passwd=12345678" http://127.0.0.1:8080/login
HTTP 头部信息也可以使用 curl 来发送, 使用 - H"头部信息" 传递多个头部信息
$ curl -H "Content-Type:application/json" http://127.0.0.1:8080
使用选项 -O 将下载的数据写入到文件 并使用 --progress 显示进度条
$ curl http://127.0.0.1:8080 -o file.txt --progress
设置 cookies
使用 --cookie "COKKIES" 选项来指定 cookie, 多个 cookie 使用分号分隔
$ curl http://127.0.0.1:8080 --cookie "user=root;pass=123456"
将 cookie 另存为一个文件, 使用 --cookie-jar 选项
$ curl http://127.0.0.1:8080 --cookie-jar cookie_file
只打印响应头部信息
通过 - I 或者 - head 可以只打印出 HTTP 头部信息
- $ curl -I http://127.0.0.1:8080
- # Accept-Ranges: bytes
- # Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
- # Connection: Keep-Alive
- # Content-Length: 277
- # Content-Type: text/html
- # Date: Thu, 29 Nov 2018 03:13:16 GMT
- # Etag: "575e1f7b-115"
- # Last-Modified: Mon, 13 Jun 2016 02:50:35 GMT
- # Pragma: no-cache
- # Server: bfe/1.0.8.18
用 curl 设置用户代理字符串
有些网站访问会提示只能使用 IE 浏览器来访问, 这是因为这些网站设置了检查用户代理, 可以使用 curl 把用户代理设置为 IE, 这样就可以访问了. 使用 --user-agent 或者 -A 选项
- $ curl http://www.baidu.com --user-agent "Mozilla/5.0"
- $ curl http://www.baidu.com -A "Mozilla/5.0"
更多高级使用 http://man.linuxde.net/curl
来源: https://juejin.im/post/5c1da55b6fb9a049c84f709b