1.7. curl¶
1.7.1. curl的用法整理¶
https://curl.se/docs/manual.html
项目地址:curlconverter
项目说明:将 curl 命令转换为 Python、JavaScript、PHP、R、Go、Rust、Dart、JSON、Ansible、Elixir
1.7.2. 功能¶
发送数据到 URL,类似于 HTTP 客户端
1.7.3. 常用选项:¶
-k, --insecure 允许 HTTPS 连接网站
-C, --continue-at 断点续传
-b, --cookie STRING/FILE 从文件中读取 cookie
-c, --cookie-jar 把 cookie 保存到文件
-d, --data 使用 POST 方式发送数据
--data-urlencode POST 的数据 URL 编码
-F, --form 指定 POST 数据的表单
-D, --dump-header 保存头信息到文件
--ftp-pasv 指定 FTP 连接模式 PASV/EPSV
-P, --ftp-port 指定 FTP 端口
-L, --location 遵循 URL 重定向,默认不处理
-l, --list-only 指列出 FTP 目录名
-H, --header 自定义头信息发送给服务器
-I, --head 查看 HTTP 头信息
-o, --output FILE 输出到文件
-#, --progress-bar 显示 bar 进度条
-x, --proxy [PROTOCOL://]HOST[:PORT] 使用代理
-U, --proxy-user USER[:PASSWORD] 代理用户名和密码
-e, --referer 指定引用地址 referer
-O, --remote-name 使用远程服务器上名字写到本地
--connect-timeout 连接超时时间,单位秒
--retry NUM 连接重试次数
--retry-delay 两次重试间隔等待时间
-s, --silent 静默模式,不输出任何内容
-Y, --speed-limit 限制下载速率
-u, --user USER[:PASSWORD] 指定 http 和 ftp 用户名和密码
-T, --upload-file 上传文件
-A, --user-agent 指定客户端信息
示例:¶
# 下载页面:
curl -o badu.html http://www.baidu.com
# 不输出下载信息:
curl -s -o baidu.html http://www.baidu.com
# 伪装客户端,指定 user-agent 和 referer 下载:
curl -A "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/44.0.2403.157 Safari/537.36" -e "baike.baidu.com" http://127.0.0.1
# 模拟用户登录,并保存 cookies 到文件:
curl -c ./cookies.txt -F NAME=user -F PWD=123 http://www.example.com/login.html
# 使用 cookie 访问:
curl -b cookies.txt http://www.baidu.com
# 访问 HTTP 认证页面:
curl -u user:pass http://www.example.com
# FTP 上传文件:
curl -T filename ftp://user:pass@ip/a.txt
curl ftp://ip -u user:pass-T filename
# FTP 下载文件:
curl -O ftp://user:pass@ip/a.txt
curl ftp://ip/filename -u user:pass -o filename
# FTP 下载多个文件:
curl ftp://ip/img/[1,3,5].jpg
# 查看 HTTP 头信息:
curl -I http://www.baidu.com
#获取状态码
curl -I -s -w "%{http_code}\\n" http://1050.git-ent.com -o /dev/null
or
curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://1035.git-ent.com -o /dev/null
1.7.4. curl模拟delete/put/post/get请求¶
-v 显示请求的信息
-X 选项指定其它协议
get:
curl -v 192.168.33.1:8080/girls/age/18
post:
curl -v 192.168.33.1:8080/girls -d 'age=14&cupSize=C'
curl -v -X POST 192.168.33.1:8080/girls -d 'age=14&cupSize=C'
# 使用 curl 发送POST请求并读取网站的响应(HTML格式):
$ curl URL -d "postvar=postdata2&postvar2=postdata2"
例如:
$ curl http://127.0.0.1:8015/guestbook/newguest.html \
-d "name=Clif&url=www.noucorp.com&http=www.noucorp.com"
put:
curl -v -X PUT -d "age=19&cupSize=C" 192.168.33.1:8080/girls/3
delete:
curl -v -X DELETE 192.168.33.1:8080/girls/3
参考文献 Curl命令用法