curl是一个广泛使用的用来上传和下载的命令行工具,当然严格来讲,它还可以有别的用途。对于测试来讲,它是Web相关测试非常实用的工具,包括debugging,使用起来非常方便。而且另一方面,因为它是纯命令行的工具,所以也可以非常方便的作为一个组件集成到automation或者其他的测试框架里面,将HTTP/HTTPS/FTP相关的上传和下载等任务交给它。
最近因为在做web service相关的测试,用到了curl,觉得还不错,顺便给大家介绍一下。
official site: http://curl.haxx.se/ , 目前最新的版本是7.20.0。
基本的用法示例
curl http://www.google.com
curl -o f1 ftp://user:pwd@myftp/Ricky/test.ini
curl dict://dict.org/d:test
下面主要介绍一下常用的参数,关于这方面,可以查看它自带的帮助文档。
-V show the version of curl
C:/Tools/curl-7.20.0>curl -V
curl 7.20.0 (i386-pc-win32) libcurl/7.20.0 OpenSSL/0.9.8l zlib/1.2.3
Protocols: dict file ftp ftps http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS Largefile NTLM SSL SSPI libz
-o [filename], save content to a file
-O use the same name
curl -o g.html www.google.com
curl -O http://www.google.com/intl/en_ALL/images/logo.gif
-i, Include the HTTP-header in the output
curl -i http://www.google.com
-u username:password
curl -u user:pwd ftp://myftp/Ricky/test.ini
-d parameters
curl http://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, access with proxy
curl -i -x myproxy:8080 -o google_proxy.html http://www.google.com
HTTP/1.1 302 Found
Via: 1.0 myproxy
Content-Length: 222
Date: Mon, 22 Mar 2010 14:15:48 GMT
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-2012 14:15:48 GMT; path=/; domain=.google.com
Set-Cookie: NID=32=MXKkZjgjiNGVNnPv9w384COa2KJZOLu5v9_5coX_N1tJtaa97-dJUxb7DCz90vQsm0fLEPg0Ee3nXv1yDDcE3ZN0sOu7mq9-mjB9CL0okXGjiIvox2FTcw0HBV7hBaLC; expires=Tue, 21-Sep-2010 14:15:48 GMT; path=/; domain=.google.com; HttpOnly
Server: gws
X-XSS-Protection: 0
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.tw/">here</A>.
</BODY></HTML>
-r [start-end], such as "-r 0-1024"
curl -i -r 0-1024 -o rfc1.txt http://xml.resource.org/public/rfc/bibxml3/rdf/item.I-D.6man-pmip6-ind.rdf
header:
note: not all web server support partial content, or it will response all even you try to get part
HTTP/1.1 206 Partial Content
Date: Mon, 22 Mar 2010 13:50:46 GMT
Server: Apache/2.2.15 (Debian)
Last-Modified: Mon, 09 Mar 2009 23:02:11 GMT
ETag: "148be6-466-464b79fe1a2c0"
Accept-Ranges: bytes
Content-Length: 1025
Content-Range: bytes 0-1024/1126
Content-Type: application/rdf+xml
note: not all web server support partial content, or it will response all even you try to get part
curl -i -r 0-1024 http://www.sina.com.cn -o sina_part1.htm
it will give you all the page.
-k insecure SSL , will not check the cert
curl -k https://ip:8445
-T upload a file with FTP
curl -T curl.html -u user:pwd ftp://myftp/Ricky/
execute once again will overwrite
-F/--form <name=content>, use for http post
curl -F password=@/etc/passwd www.mypasswords.com
You can also tell curl what Content-Type to use by using 'type=', in a manner similar to:
curl -F "web=@index.html;type=text/html" url.com
最后顺便说一下,如果是用来做HTTP的测试和调试,希望有GUI的话,也有不少其它的工具可以选择,包括Fiddler,JMeter和Firefox的tamper data插件。
http://blog.csdn.net/superqa/article/details/5418636
相关推荐
curl是一个广泛使用的用来上传和下载的命令行工具,当然严格来讲,它还可以有别的用途。对于测试来讲,它是Web相关测试非常实用的工具,包括debugging,使用起来非常方便。而且另一方面,因为它是纯命令行的工具,...
使用VC6编译-Curl和LibCurl+ssl+ssh2+zlib libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,...
如果你需要访问指定的URL地址,只需要使用基本语法curl [options] [URL]即可。Curl还提供了许多选项和参数,以满足不同场景下的需求。例如,如果你需要将输出保存到指定文件中,可以使用o [file]选项,或者使用O选项...
在代理上使用基本身份验证 --proxy-digest 在代理上使用数字身份验证 --proxy-ntlm 在代理上使用ntlm 身份验证 -P/--ftp-port <address> 使用端口地址,而不是使用PASV -Q/--quote <cmd> 文件传输前,...
- anyauth 可以使用“任何”身份验证方法 -b/--cookie <name=string/file> cookie字符串或文件读取位置 - basic 使用HTTP基本验证 -B/--use-ascii 使用ASCII /文本传输 -c/--cookie-jar <file> 操作...
卷曲PHP的基本CURL包装器(有关PHP的libcurl扩展的更多信息,请参见 )安装点击上方的download链接或git clone git://github.com/shuber/curl.git用法初始化只需要求并初始化Curl类,如下所示: require_once 'curl....
1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。 2.基本结构 ...
1、基本用法 2、保存访问的网页 3、测试网页返回值 4、指定proxy服务器以及其端口 5、cookie 6、模仿浏览器 7、伪造referer(盗链) 8、***下载文件 9、断点续传 10、***上传文件 11、显示抓取错误
Linux下网络检测与通讯命令netcat、curl的Windows/DOS版,经过多方努力才攒成的。...但Windows下只自带ping命令,好容易才找到另两个命令的Windows版本,虽然不是最新的,但基本用法一致,希望对大家有用。
Curl支持各种请求方法,包括GET、POST、PUT、DELETE等。它还支持设置请求头、发送表单数据、上传文件、自动跟随重定向、跳过SSL证书验证等功能。Curl的语法简单易懂,可以快速学习和上手。由于Curl是开源的,因此...
简单地初始化和使用Curl类,如下所示: <?php use Alioygur \ Curl \ Curl ; $ curl = new Curl (); $ response = $ curl -> setOption ( 'CURLOPT_FOLLOW_REDIRECTS' , false ) -> setHeader ( 'User-Agent'...
基本框架全部重写,普通的同步访问都没啥大的区别,主要是异步高并发这次大改,个人觉得效率非常不错,但是记住异步访问的一些获取方法,如取响应数据,取响应Cookie,取协议头等,只能在<异步完成>的接受事件里使用...
欢迎来到human_curl的文档! 向人类发出卷曲请求human_curl允许... 调试请求和响应头.netrc支持用法简单获取请求>>> import human_curl as requests # python-requests.org compatibile>>> # import human_curl as hur
cURL是与各种的服务器使用各种类型的协议进行连接和通讯的工具。...使用cURL的基本方法如下:首先修改php.ini文件的设置,找到php_curl.dll,取消下在的注释extension=php_curl.dll,因为php默认是不开
多网址 一个简单的HTTP客户端,可以使用cURL库发出单个或异步...可以设置基本URL,以便将来与请求相关的方法不必指定完整的端点。 例如: use Bayfront\MultiCurl\Client; $client = new Client('https://jsonplacehol
本文实例讲述了php使用curl伪造浏览器访问操作。分享给大家供大家参考,具体如下: 原理 服务器主要通过User-Agent识别客户端是何种设备 User-Agent是Http协议中的一部分,属于头域的组成部分。基本格式为: 浏览器...
使用cURL的基本REST客户端 支持PUT,GET,POST,DELETE并使用cURL的简单实现。 基于rest-client-php ,感谢他的工作。 它是为像我这样的人制作的,在某些情况下无法使用pecl_http。 支持GET,POST,PUT,DELETE ...
本文实例讲述了php使用curl抓取远程url的方法。分享给大家供大家参考。具体如下: cURL是一个非常有用的php库,可以用来连接不通类型的服务器和协议,下面是一个最基本的范例用来抓取远程网页 <?php $c = curl_...
0、基本例子 一般流程: $to_url=$_GET['url']; print_r($_GET); if(substr($to_url,0,1)=='/'){ $to_url="http://www.amazon.com".$to_url; } echo $to_url; //初始化 $ch = curl_init(); //设置选项,包括URL ...