curl使用

  curl是一款免费开源的数据传输工具。可以支持的协议有:DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP。
目前市面上出现的机型几乎都支持,一个字很牛。有人问了,这么好的东西哪里可以买到那?无需购买直接取用(http://curl.haxx.se/)
  废话少说,直接开始。功能很强大,参数很多,只记录偶用过的参数。
1:-o/--output <file> 以文件名<file>保存至本地也就是重命名
   -O/--remote-name   该参数以源端的名字保存
     curl -o c:\page.html http://blog.csdn.net/jim_xsy/article/details/7284021
     curl -O http://blog.csdn.net/jim_xsy/article/details/7284021
     curl -O www.haxx.se//index.html -O curl.haxx.se//download.html  下载两个文件


2: -x/--proxy <host[:port]> 使用HTTP Proxy
   -U/--proxy-user <user[:password]> 配置 HTTP Proxy用户名和密码
     curl -x 10.11.11.30:8080 -U proxy:passwd -o c:\test.html http://blog.csdn.net/jim_xsy/article/details/7284021


3:-u/--user <user[:password]> 设置Server的用户名和密码
  curl -u ftpname:ftppasswd ftp://ftp_ip:port/full/path/to/file 
  等价于:curl ftp://ftpname:ftppasswd@ftp_ip:port/full/path/to/file


4:-0(数字零), --http1.0 使用HTTP1.0,默认使用HTTP1.1


5:-r/--range <range> 下载指定字节大小文件
   curl -r 0-99 http://www.get.this/ 获取文件前100bytes  
   curl -r 100- http://www.get.this/ 获取文件剩下的字节数
   curl -r 0-99 ftp://www.get.this/README


6:-C, --continue-at <offset> 当之前传输失败后,使用该参数进行断点续传
C:\>curl -r 0-10240 -o H:\test.tar ftp://ftptest:123456@19.16.11.10:21/test.tar  下载前10240bytes
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10241  100 10241    0     0   128k      0 --:--:-- --:--:-- --:--:--  115k


C:\>curl -C 10241 -o H:\test.tar ftp://ftptest:123456@19.16.11.10:21/test.tar  从10241bytes处恢复下载
** Resuming transfer from byte position 10241
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.9M  100 12.9M    0     0  1457k      0  0:00:09  0:00:09 --:--:-- 1478k
如果不知道从哪里开始,使用命令"-C -" 自动判断。


7:[] 和 {} 用于批量传输
C:\>curl -o H:\Curl_Test\#2_#1.txt ftp://ftptest:123456@19.16.11.10:21/{aa,bb,cc}/[1-20].txt
#1是变量,指的是{aa,bb,cc}这部分,第一次取值aa,第二次取值bb,第三次取值cc
#2代表的变量,则是第二段可变部分---[1-20],取值从1逐一加到20
运行结果:
获取ftpserver上目录aa bb cc 下1.txt --- 20.txt 至本地目录H:\Curl_Test下。
下载后的文件名为:1_aa.txt --- 20_aa.txt
                  1_bb.txt --- 20_bb.txt
                  1_cc.txt --- 20_cc.txt


8:-T/--upload-file <file>  上传文件
curl -T H:\Curl_Test\1.txt -u ftptest:123456 ftp://19.16.11.10:21/dd/1.txt


9:-s/--silent   关闭信息的输出
     不加该选项执行curl会输出下载文件的进度等信息,加了该参数则无输出。


10:-S/--show-error   该参数和-s一起使用,确保错误信息可以输出


11  --retry <num>     当数据传输发生错误时,持续连接num次
    --retry-delay <seconds> 配置每次连接的间隙时间
    --retry-max-time <seconds> 配置尝试连接的最大时间
EX:
C:\Program Files\PowerCmd>curl -# --retry 3 -T H:\Curl_Test\1.txt -u ftptest:12 ftp://19.16.11.10/dd/1.txt #使用错误的密码
Warning: Transient problem: FTP error Will retry in 1 seconds. 3 retries left.
Warning: Transient problem: FTP error Will retry in 2 seconds. 2 retries left.
Warning: Transient problem: FTP error Will retry in 4 seconds. 1 retries left.
curl: (67) Access denied: 530
    
12: -m/--max-time <seconds> 限制数据传输的最大时间
    --max-filesize <bytes> 定义下载文件的最大字节数,如果需要下载的文件大于此值则不下载。 (HTTP/FTP专用选项)
Ex:
C:\>curl -m 3 -T H:\test.tar -u ftptest:123456 ftp://19.16.11.10/dd/test.tar #只持续下载3秒钟
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 40 12.9M    0     0   40 5376k      0  1767k  0:00:07  0:00:03  0:00:04 1780k
curl: (28) Operation timed out after 3000 milliseconds with 5505024 bytes received


C:\>curl --max-filesize 1024 -o H:\test.tar -u ftptest:123456 ftp://19.16.11.10/dd/test.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (63) Maximum file size exceeded


12:-v/--verbose    开启传输的详细日志输出
    --trace <file>  输出整个Debug信息至文件file中
    --trace-ascii <file> 和--trace作用类似,区别在于不输出十六进制的信息
    --trace-time    在Debug日志中添加时间信息
  
13:-w/--write-out [format] 传输结束之后输出指定的信息,可以用于判断结束使用
    -#/--progress-bar  Display transfer progress as a progress bar
Ex:
C:\>curl -# -w "Transfer File 1.txt Successfull." -T H:\Curl_Test\1.txt -u ftptest:123456 ftp://19.16.11.10/dd/1.txt
######################################################################## 100.0%
Transfer File 1.txt Successfull.
C:\>


14:-i/--include    包含HTTP头信息
    -I/--head       只输出HTTP头信息,FTP协议则输出文件的大小和修改时间等信息
    -D/--dump-header <file>  输出协议头部信息至指定文件中
Ex:
C:\>curl -I curl.haxx.se/
HTTP/1.1 200 OK
Date: Thu, 01 Mar 2012 06:15:45 GMT
Server: Apache
Last-Modified: Thu, 01 Mar 2012 06:05:05 GMT
ETag: "1a09a7-2e06-4ba283dcb8fb0"
Accept-Ranges: bytes
Content-Length: 11782
Vary: Accept-Encoding
Content-Type: text/html


C:\>curl -I -u ftptest:123456 ftp://19.16.11.10/dd/test.tar
Last-Modified: Thu, 01 Mar 2012 08:35:33 GMT
Content-Length: 13537280
Accept-ranges: bytes


14:-y/--speed-time    下载速度低于某一值(--speed-limit)超过此规定时间中断下载
    -Y/--speed-limit   如果每秒下载速度低于此值则中断下载
    --limit-rate <rate> 限制下载速度
Ex:
curl -Y 3000 -y 60 www.far-away-site.com #如果下载速度低于3000 bytes/sec超过1分钟,则中断下载


C:\>curl --limit-rate 100k -o H:\test.tar -u ftptest:123456 ftp://19.16.11.10/dd/test.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 15 12.9M   15 2099k    0     0   100k      0  0:02:11  0:00:20  0:01:51   99k






参考文档:http://www.cs.sunysb.edu/documentation/curl/
          http://curl.haxx.se/docs/manpage.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值