cURL是一个带有命令行的URL语法传输文件,支持FTP,FTPS,TFTP和HTTP,HTTPS协议,或Gopher,Telnet,字典,文件。curl是一个利用URL语法在命令行方式下工作的文件传输工具curl支持HTTPS证书,HTTPPOST,HTTPPUT,FTP上传,HTTP表单上传,代理,cookies,用户+密码身份验证(基本,摘要式,NTLM,协商,Kerberos身份...),恢复文件传输,代理和隧道总线负载其他有用的技巧。cURL是自由和开放的软件操作系统下的各种编译。
常用参数
curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中经常用到过的那些。
在以下选项中,(H)表示仅适用HTTP/HTTPS,(F)表示仅适用于FTP
--anyauth???选择"any"认证方法(H)
-a,--append????添加要上传的文件(F/SFTP)
--basic????使用HTTP基础认证(BasicAuthentication)(H)
--cacertFILE?CA证书,用于每次请求认证(SSL)
--capathDIR??CA证书目录(SSL)
-E,--certCERT[:PASSWD]客户端证书文件及密码(SSL)
--cert-typeTYPE证书文件类型(DER/PEM/ENG)(SSL)
--ciphersLIST?SSL秘钥(SSL)
--compressed??请求压缩(使用deflate或gzip)
-K,--configFILE?指定配置文件
--connect-timeoutSECONDS?连接超时设置
-C,--continue-atOFFSET?断点续转
-b,--cookieSTRING/FILE?Cookies字符串或读取Cookies的文件位置(H)
-c,--cookie-jarFILE?操作结束后,要写入Cookies的文件位置(H)
--create-dirs?创建必要的本地目录层次结构
--crlf?????在上传时将LF转写为CRLF
--crlfileFILE?从指定的文件获得PEM格式CRL列表
-d,--dataDATA??HTTPPOST数据(H)
--data-asciiDATA?ASCII编码HTTPPOST数据(H)
--data-binaryDATA?binary编码HTTPPOST数据(H)
--data-urlencodeDATA?url编码HTTPPOST数据(H)
--delegationSTRINGGSS-API委托权限
--digest????使用数字身份验证(H)
--disable-eprt?禁止使用EPRT或LPRT(F)
--disable-epsv?禁止使用EPSV(F)
-D,--dump-headerFILE?将头信息写入指定的文件
--egd-fileFILE?为随机数据设置EGDsocket路径(SSL)
--engineENGINGE?加密引擎(SSL)."--enginelist"指定列表
-f,--fail?????连接失败时不显示HTTP错误信息(H)
-F,--formCONTENT?模拟HTTP表单数据提交(multipartPOST)(H)
--form-stringSTRING?模拟HTTP表单数据提交(H)
--ftp-accountDATA?帐户数据提交(F)
--ftp-alternative-to-userCOMMAND?指定替换"USER[name]"的字符串(F)
--ftp-create-dirs?如果不存在则创建远程目录(F)
--ftp-method[MULTICWD/NOCWD/SINGLECWD]控制CWD(F)
--ftp-pasv???使用PASV/EPSV替换PORT(F)
-P,--ftp-portADR?使用指定PORT及地址替换PASV(F)
--ftp-skip-pasv-ip跳过PASV的IP地址(F)
--ftp-pret???在PASV之前发送PRET(drftpd)(F)
--ftp-ssl-ccc?在认证之后发送CCC(F)
--ftp-ssl-ccc-modeACTIVE/PASSIVE?设置CCC模式(F)
--ftp-ssl-controlftp登录时需要SSL/TLS(F)
-G,--get?????使用HTTPGET方法发送-d数据?(H)
-g,--globoff???禁用的URL队列及范围使用{}和[]
-H,--headerLINE?要发送到服务端的自定义请求头(H)
-I,--head?????仅显示响应文档头
-h,--help?????显示帮助
-0,--http1.0???使用HTTP1.0(H)
--ignore-content-length?忽略HTTPContent-Length头
-i,--include???在输出中包含协议头(H/F)
-k,--insecure???允许连接到SSL站点,而不使用证书(H)
--interfaceINTERFACE?指定网络接口/地址
-4,--ipv4?????将域名解析为IPv4地址
-6,--ipv6?????将域名解析为IPv6地址
-j,--junk-session-cookies读取文件中但忽略会话cookie(H)
--keepalive-timeSECONDS?keepalive包间隔
--keyKEY???私钥文件名(SSL/SSH)
--key-typeTYPE私钥文件类型(DER/PEM/ENG)(SSL)
--krbLEVEL??启用指定安全级别的Kerberos(F)
--libcurlFILE?命令的libcurl等价代码
--limit-rateRATE?限制传输速度
-l,--list-only??只列出FTP目录的名称(F)
--local-portRANGE?强制使用的本地端口号
-L,--location???跟踪重定向(H)
--location-trusted类似--location并发送验证信息到其它主机(H)
-M,--manual????显示全手动
--mail-fromFROM?从这个地址发送邮件
--mail-rcptTO?发送邮件到这个接收人(s)
--mail-authAUTH?原始电子邮件的起始地址
--max-filesizeBYTES?下载的最大文件大小(H/F)
--max-redirsNUM?最大重定向数(H)
-m,--max-timeSECONDS?允许的最多传输时间
--metalink???处理指定的URL上的XML文件
--negotiate??使用HTTPNegotiate认证(H)
-n,--netrc????必须从.netrc文件读取用户名和密码
--netrc-optional使用.netrc或URL;将重写-n参数
--netrc-fileFILE?设置要使用的netrc文件名
-N,--no-buffer??禁用输出流的缓存
--no-keepalive?禁用connection的keepalive
--no-sessionid?禁止重复使用SSLsession-ID(SSL)
--noproxy???不使用代理的主机列表
--ntlm?????使用HTTPNTLM认证(H)
-o,--outputFILE?将输出写入文件,而非stdout
--passPASS??传递给私钥的短语(SSL/SSH)
--post301???在301重定向后不要切换为GET请求(H)
--post302???在302重定向后不要切换为GET请求(H)
--post303???在303重定向后不要切换为GET请求(H)
-#,--progress-bar?以进度条显示传输进度
--protoPROTOCOLS?启用/禁用指定的协议
--proto-redirPROTOCOLS?在重定向上启用/禁用指定的协议
-x,--proxy[PROTOCOL://]HOST[:PORT]在指定的端口上使用代理
--proxy-anyauth在代理上使用"any"认证方法(H)
--proxy-basic?在代理上使用Basic认证?(H)
--proxy-digest?在代理上使用Digest认证(H)
--proxy-negotiate在代理上使用Negotiate认证(H)
--proxy-ntlm??在代理上使用NTLM认证(H)
-U,--proxy-userUSER[:PASSWORD]?代理用户名及密码
--proxy1.0HOST[:PORT]?在指定的端口上使用HTTP/1.0代理
-p,--proxytunnel?使用HTTP代理(用于CONNECT)
--pubkeyKEY??公钥文件名(SSH)
-Q,--quoteCMD??在传输开始前向服务器发送命令(F/SFTP)
--random-fileFILE?读取随机数据的文件(SSL)
-r,--rangeRANGE?仅检索范围内的字节
--raw?????使用原始HTTP传输,而不使用编码(H)
-e,--referer???RefererURL(H)
-J,--remote-header-name从远程文件读取头信息(H)
-O,--remote-name?将输出写入远程文件
--remote-name-all使用所有URL的远程文件名
-R,--remote-time?将远程文件的时间设置在本地输出上
-X,--requestCOMMAND?使用指定的请求命令
--resolveHOST:PORT:ADDRESS?将HOST:PORT强制解析到ADDRESS
--retryNUM?出现问题时的重试次数
--retry-delaySECONDS重试时的延时时长
--retry-max-timeSECONDS?仅在指定时间段内重试
-S,--show-error??显示错误.在选项-s中,当curl出现错误时将显示
-s,--silent????Silent模式。不输出任务内容
--socks4HOST[:PORT]?在指定的host+port上使用SOCKS4代理
--socks4aHOST[:PORT]?在指定的host+port上使用SOCKSa代理
--socks5HOST[:PORT]?在指定的host+port上使用SOCKS5代理
--socks5-hostnameHOST[:PORT]SOCKS5代理,指定用户名、密码
--socks5-gssapi-serviceNAME?为gssapi使用SOCKS5代理服务名称
--socks5-gssapi-nec?与NECSocks5服务器兼容
-Y,--speed-limitRATE?在指定限速时间之后停止传输
-y,--speed-timeSECONDS?指定时间之后触发限速.默认30
--ssl?????尝试SSL/TLS(FTP,IMAP,POP3,SMTP)
--ssl-reqd???需要SSL/TLS(FTP,IMAP,POP3,SMTP)
-2,--sslv2????使用SSLv2(SSL)
-3,--sslv3????使用SSLv3(SSL)
--ssl-allow-beast允许的安全漏洞,提高互操作性(SSL)
--stderrFILE?重定向stderr的文件位置.-meansstdout
--tcp-nodelay?使用TCP_NODELAY选项
-t,--telnet-optionOPT=VAL?设置telnet选项
--tftp-blksizeVALUE?设备TFTPBLKSIZE选项(必须>512)
-z,--time-condTIME?基于时间条件的传输
-1,--tlsv1????使用=>TLSv1(SSL)
--tlsv1.0???使用TLSv1.0(SSL)
--tlsv1.1???使用TLSv1.1(SSL)
--tlsv1.2???使用TLSv1.2(SSL)
--traceFILE??将debug信息写入指定的文件
--trace-asciiFILE?类似--trace但使用16进度输出
--trace-time??向trace/verbose输出添加时间戳
--tr-encoding?请求压缩传输编码(H)
-T,--upload-fileFILE?将文件传输(上传)到指定位置
--urlURL???指定所使用的URL
-B,--use-ascii??使用ASCII/text传输
-u,--userUSER[:PASSWORD]?指定服务器认证用户名、密码
--tlsuserUSER?TLS用户名
--tlspasswordSTRINGTLS密码
--tlsauthtypeSTRING?TLS认证类型(默认SRP)
--unix-socketFILE??通过这个UNIXsocket域连接
-A,--user-agentSTRING?要发送到服务器的User-Agent(H)
-v,--verbose???显示详细操作信息
-V,--version???显示版本号并退出
-w,--write-outFORMAT?完成后输出什么
--xattr????将元数据存储在扩展文件属性中
-q????????.curlrc如果作为第一个参数无效
curl介绍和基本用法
curl是一个广泛使用的用来上传和下载的命令行工具,当然严格来讲,它还可以有别的用途。对于测试来讲,它是Web相关测试非常实用的工具,包括debugging,使用起来非常方便。而且另一方面,因为它是纯命令行的工具,所以也可以非常方便的作为一个组件集成到automation或者其他的测试框架里面,将HTTP/HTTPS/FTP相关的上传和下载等任务交给它。
最近因为在做webservice相关的测试,用到了curl,觉得还不错,顺便给大家介绍一下。
officialsite:?http://curl.haxx.se/?,目前最新的版本是7.20.0。
基本的用法示例
curlhttp://www.google.com
curl-of1?ftp://user:pwd@myftp/Ricky/test.ini
curldict://dict.org/d:test
下面主要介绍一下常用的参数,关于这方面,可以查看它自带的帮助文档。
-Vshowtheversionofcurl
C:/Tools/curl-7.20.0curl-V
curl7.20.0(i386-pc-win32)libcurl/7.20.0OpenSSL/0.9.8lzlib/1.2.3
Protocols:?dictfileftpftpshttphttpsimapimapsldappop3pop3srtspsmtpsmtpstelnettftp
Features:AsynchDNSLargefileNTLMSSLSSPIlibz
-o[filename],savecontenttoafile
-Ousethesamename
curl-og.htmlwww.google.com
curl-Ohttp://www.google.com/intl/en_ALL/images/logo.gif
-i,IncludetheHTTP-headerintheoutputcurl-ihttp://www.google.com
-uusername:password
curl-uuser:pwd?ftp://myftp/Ricky/test.ini
-dparameters
curlhttp://www.yahoo.com/login.cgi?user=nick&password=12345
curl-d"user=nick&password=12345"http://www.yahoo.com/login.cgi
-x?proxy_ip:port,accesswithproxy
curl-i-xmyproxy:8080-ogoogle_proxy.htmlhttp://www.google.com
HTTP/1.1302Found
Via:1.0myproxy
Content-Length:222
Date:Mon,22Mar201014:15:48GMT
Location:http://www.google.com.tw/
Content-Type:text/html;charset=UTF-8
Cache-Control:private
Set-Cookie:PREF=ID=aa97c3734c862ddf:TM=1269267348:LM=1269267348:S=4FEEGAPNu2FN2lho;expires=Wed,21-Mar-201214:15:48GMT;path=/;domain=.google.com
Set-Cookie:NID=32=MXKkZjgjiNGVNnPv9w384COa2KJZOLu5v9_5coX_N1tJtaa97-dJUxb7DCz90vQsm0fLEPg0Ee3nXv1yDDcE3ZN0sOu7mq9-mjB9CL0okXGjiIvox2FTcw0HBV7hBaLC;expires=Tue,21-Sep-201014:15:48GMT;path=/;domain=.google.com;HttpOnly
Server:gws
X-XSS-Protection:0
<HTML<HEAD<metahttp-equiv="content-type"content="text/html;charset=utf-8"
<TITLE302Moved</TITLE</HEAD<BODY
<H1302Moved</H1
Thedocumenthasmoved
<AHREF="http://www.google.com.tw/"here</A.
</BODY</HTML
-r[start-end],suchas"-r0-1024"
curl-i-r0-1024-orfc1.txthttp://xml.resource.org/public/rfc/bibxml3/rdf/item.I-D.6man-pmip6-ind.rdf
header:
HTTP/1.1?206PartialContent
Date:Mon,22Mar201013:50:46GMT
Server:Apache/2.2.15(Debian)
Last-Modified:Mon,09Mar200923:02:11GMT
ETag:"148be6-466-464b79fe1a2c0"
Accept-Ranges:bytes
Content-Length:1025
Content-Range:bytes0-1024/1126
Content-Type:application/rdf+xml
note:notallwebserversupportpartialcontent,oritwillresponseallevenyoutrytogetpart
curl-i-r0-1024http://www.sina.com.cn-osina_part1.htm
itwillgiveyouallthepage.-kinsecureSSL,willnotcheckthecert
curl-khttps://ip:8445
-TuploadafilewithFTP
curl-Tcurl.html-uuser:pwd?ftp://myftp/Ricky/
executeonceagainwilloverwrite
-F/--form<name=content,useforhttppost
curl?-Fpassword=@/etc/passwdwww.mypasswords.com
YoucanalsotellcurlwhatContent-Typetousebyusing'type=',inamannersimilarto:
curl?-F"web=@index.html;type=text/html"url.com
最后顺便说一下,如果是用来做HTTP的测试和调试,希望有GUI的话,也有不少其它的工具可以选择,包括Fiddler,JMeter和Firefox的tamperdata插件。
Tags:文件传输工具,cURL.
小编点评:玥雅CMS网站信息管理系统使用当前流行的.
下载小编点评:QTTA猪QQ表情包,QTTA猪是一只.
下载小编点评:WinRAR中文个人免费版是一款Win.
下载小编点评:吃鸡吃鸡表情包是为喜欢使用表情包的.
下载小编点评:你的良心不会痛吗表情包是最新比较火的一套脆皮鸡.
下载小编点评:枫树落叶背景秋季主题PPT模版,以.
下载小编点评:美丑有命胖瘦在天表情包是一款以韩国吃.
下载小编点评:累成狗表情包是一款很接地气的表情系列图,我们工作.
下载小编点评:收录池外链工具最新版这是小编精心为站.
下载小编点评:陌屿个人发卡网源码可以提供我们相当给力丰富的网站.
下载小编点评:软件介绍FTPControl是一款功能强.
下载小编点评:软件介绍Netstumbler是最.
下载小编点评:liferestart人生重开模拟器游戏.
下载奇葩战斗家4399账号版下载-奇葩战斗家4399版本下载v1.33.1 安卓版
开局带麻痹破解版下载-开局带麻痹无限元宝金币版下载v2.8.01 安卓内购版
都市匪影手游下载-都市匪影游戏下载v0.5 安卓手机版
死亡托付游戏下载-死亡托付手机版下载v1.23 安卓版
粉碎跑酷破解版下载-粉碎跑酷内购破解版(smashing rush)下载v1.0.4 安卓版
深海大冒险游戏下载-深海大冒险手机版下载v1.3.0 安卓版
九阴九阳九游版下载-九阴九阳九游最新版下载v3.3 安卓版
绿色征途oppo手机版下载-绿色征途oppo版下载v212.0.0 安卓版
影刃联盟下载安装-影刃联盟游戏下载v1.3.0.34 安卓版
逐鹿神途游戏官方版下载-逐鹿神途手游下载v9.20191002 安卓版
荒岛奇兵online官方版下载-荒岛奇兵online小游戏下载v1.0.0 安卓正版
破雪刃折扣版下载-破雪刃折扣平台下载v1.9.3 安卓版
皇帝养成之朕临天下游戏下载-皇帝养成之朕临天下最新版下载v1.0.0 安卓版