Curl

# 输出参数介绍
curl —s # 省略进度条
curl -S # 省略进度条是出错时显示错误
curl -o 1.txt # 制定输出目录
curl -I # 只输出响应头,小写i:加上body
# 输入参数
curl -A # UA信息
curl -b # cookies k=v
curl -H # 请求头 
curl -L # 跟随3xx重定向
curl -e # 指定referer
curl -u # -u user:passwd http验证
curl -d # 请求参数就是body内容
        # 默认传输方式是 application/json,服务端接收数据-》body-》form数据
        # 若在-H 指定Content-Type:application/json,服务端接受数据-》body-》json data
        # 应该还有file类型的Content-Type,服务端-》body-》file
curl -X # 请求方法 POST GET(默认)
curl -x # 代理  socks5://127.0.0.1:1080
curl -v # 打印调试信息
curl -k # 忽略SSL证书
curl -m # 指定等待时间time-out
# CURL FTP命令
curl ftp://host:port/ -u "user:passwd"
# 查看
curl ftp://host:xxx/ -u "user:password"
# 上传
curl ftp://user:password@host:port/path -T
# 1、列出ftp服务器上的目录列表:
curl ftp://www.xxx.com/ --user name:passwd
curl ftp://www.xxx.com/ –u name:passwd #简洁写法
curl ftp://name:passwd@www.xxx.com #简洁写法2
# 2、只列出目录,不显示进度条
curl ftp://www.xxx.com –u name:passwd -s
# 3、下载一个文件:
curl ftp://www.xxx.com/size.zip –u name:passwd -o size.zip
# 4、上载一个文件:
curl –u name:passwd -T size.mp3 ftp://www.xxx.com/mp3/
# 5、从服务器上删除文件(使用curl传递ftp协议的DELE命令):
curl –u name:passwd ftp://www.xxx.com/ -X 'DELE mp3/size.mp3'
6、另外curl不支持递归下载,不过可以用数组方式下载文件,比如我们要下载1-10.gif连续命名的文件:
# curl –u name:passwd ftp://www.xxx.com/img/[1-10].gif –O #O字母大写
7、要连续下载多个文件:
curl –u name:passwd ftp://www.xxx.com/img/[one,two,three].jpg –O #O字母大写
# 测试代理是否可用 301或200 表示可用
curl -so /dev/null -w "%{http_code}" https://www.google.com -x socks5://127.0.0.1:1080 
# -w 指定输出某项内容,可选项如下所示
curl
url_effective:        %{url_effective}        最终获取的url地址,尤其是当你指定给curl的地址存在301跳转,且通过-L继续追踪的情形。\r\n
http_code:             %{http_code}            。\r\n
http_connect:         %{http_connect}            last response (from a proxy) to a curl CONNECT request。\r\n
time_total :         %{time_total}            总时间,按秒计,精确到小数点后三位。\r\n
time_namelookup:     %{time_namelookup}        DNS解析时间,从请求开始到DNS解析完毕所用时间。\r\n
time_connect :         %{time_connect}            从开始到建立TCP连接完成所用时间,包括前边DNS解析时间
time_appconnect:     %{time_appconnect}        连接建立完成时间,如SSL/SSH等建立连接或者完成三次握手时间。\r\n
time_pretransfer:     %{time_pretransfer}        从开始到准备传输的时间。\r\n
time_redirect:         %{time_redirect}        重定向时间,包括到最后一次传输前的几次重定向的DNS解析,连接,预传输,传输时间。\r\n
time_starttransfer:    %{time_starttransfer}    开始传输时间,在发出请求之后,Web 服务器返回数据的第一个字节所用的时间。\r\n
size_download:         %{size_download}        。\r\n
size_upload:         %{size_upload}            上传大小。\r\n
size_header:         %{size_header}            下载的header的大小。\r\n
size_request:         %{size_request}            请求的大小。\r\n
speed_download:     %{speed_download}        下载速度,单位-字节每秒。\r\n
speed_upload:         %{speed_upload}            上传速度,单位-字节每秒。\r\n
content_type:         %{content_type}            。\r\n
num_connects:         %{num_connects}            最近的的一次传输中创建的连接数目。\r\n
num_redirects:         %{num_redirects}        在请求中跳转的次数。\r\n
redirect_url:         %{redirect_url}            。\r\n
ftp_entry_path:     %{ftp_entry_path}        当连接到远程的ftp服务器时的初始路径。\r\n
ssl_verify_result:     %{ssl_verify_result}    ssl认证结果,返回0表示认证成功。\r\n

Wget

wget -c # 端点续传,可以接上次中断处下载,否则会重命名闻见为xxx.1
wget -b # 后台下载
wget -e https_proxy=http://192.168.1.37:10808 https://github.com/1.txt # 代理
测试地址:https://www.httpbin.org/get

标签: none

评论已关闭