`

curl 介绍和基本用法

阅读更多
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 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:
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介绍和基本用法

    curl是一个广泛使用的用来上传和下载的命令行工具,当然严格来讲,它还可以有别的用途。对于测试来讲,它是Web相关测试非常实用的工具,包括debugging,使用起来非常方便。而且另一方面,因为它是纯命令行的工具,...

    使用VC6编译-Curl和LibCurl+ssl+ssh2+zlib

    使用VC6编译-Curl和LibCurl+ssl+ssh2+zlib libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,...

    curl命令详解(生成方法)

    如果你需要访问指定的URL地址,只需要使用基本语法curl [options] [URL]即可。Curl还提供了许多选项和参数,以满足不同场景下的需求。例如,如果你需要将输出保存到指定文件中,可以使用o [file]选项,或者使用O选项...

    curl命令详解.pdf

    在代理上使用基本身份验证 --proxy-digest 在代理上使用数字身份验证 --proxy-ntlm 在代理上使用ntlm 身份验证 -P/--ftp-port &lt;address&gt; 使用端口地址,而不是使用PASV -Q/--quote &lt;cmd&gt; 文件传输前,...

    超全的curl命令详解文档集.zip

     - anyauth 可以使用“任何”身份验证方法  -b/--cookie &lt;name=string/file&gt; cookie字符串或文件读取位置  - basic 使用HTTP基本验证  -B/--use-ascii 使用ASCII /文本传输  -c/--cookie-jar &lt;file&gt; 操作...

    curl:PHP的基本CURL包装器

    卷曲PHP的基本CURL包装器(有关PHP的libcurl扩展的更多信息,请参见 )安装点击上方的download链接或git clone git://github.com/shuber/curl.git用法初始化只需要求并初始化Curl类,如下所示: require_once 'curl....

    PHP中使用cURL实现Get和Post请求的方法

    1.cURL介绍  cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。 2.基本结构  ...

    Linux-curl 命令用法大总结.docx

    1、基本用法 2、保存访问的网页 3、测试网页返回值 4、指定proxy服务器以及其端口 5、cookie 6、模仿浏览器 7、伪造referer(盗链) 8、***下载文件 9、断点续传 10、***上传文件 11、显示抓取错误

    Linux下网络检测与通讯命令netcat、curl的Windows/DOS版

    Linux下网络检测与通讯命令netcat、curl的Windows/DOS版,经过多方努力才攒成的。...但Windows下只自带ping命令,好容易才找到另两个命令的Windows版本,虽然不是最新的,但基本用法一致,希望对大家有用。

    命令行工具curl的常用命令汇总.doc

    Curl支持各种请求方法,包括GET、POST、PUT、DELETE等。它还支持设置请求头、发送表单数据、上传文件、自动跟随重定向、跳过SSL证书验证等功能。Curl的语法简单易懂,可以快速学习和上手。由于Curl是开源的,因此...

    curl:PHP 的基本 CURL 包装器

    简单地初始化和使用Curl类,如下所示: &lt;?php use Alioygur \ Curl \ Curl ; $ curl = new Curl (); $ response = $ curl -&gt; setOption ( 'CURLOPT_FOLLOW_REDIRECTS' , false ) -&gt; setHeader ( 'User-Agent'...

    CurlHTTP访问模块,Curl深度封装,重写异步高并发框架

    基本框架全部重写,普通的同步访问都没啥大的区别,主要是异步高并发这次大改,个人觉得效率非常不错,但是记住异步访问的一些获取方法,如取响应数据,取响应Cookie,取协议头等,只能在&lt;异步完成&gt;的接受事件里使用...

    human_curl:cURL库的简单包装器

    欢迎来到human_curl的文档! 向人类发出卷曲请求human_curl允许... 调试请求和响应头.netrc支持用法简单获取请求&gt;&gt;&gt; import human_curl as requests # python-requests.org compatibile&gt;&gt;&gt; # import human_curl as hur

    php curl基本操作详解

    cURL是与各种的服务器使用各种类型的协议进行连接和通讯的工具。...使用cURL的基本方法如下:首先修改php.ini文件的设置,找到php_curl.dll,取消下在的注释extension=php_curl.dll,因为php默认是不开

    多卷曲:使用cURL库发出单个或异步请求的简单HTTP客户端

    多网址 一个简单的HTTP客户端,可以使用cURL库发出单个或异步...可以设置基本URL,以便将来与请求相关的方法不必指定完整的端点。 例如: use Bayfront\MultiCurl\Client; $client = new Client('https://jsonplacehol

    php使用curl伪造浏览器访问操作示例

    本文实例讲述了php使用curl伪造浏览器访问操作。分享给大家供大家参考,具体如下: 原理 服务器主要通过User-Agent识别客户端是何种设备 User-Agent是Http协议中的一部分,属于头域的组成部分。基本格式为: 浏览器...

    rest-curlclient-php:使用cURL的基本REST客户端

    使用cURL的基本REST客户端 支持PUT,GET,POST,DELETE并使用cURL的简单实现。 基于rest-client-php ,感谢他的工作。 它是为像我这样的人制作的,在某些情况下无法使用pecl_http。 支持GET,POST,PUT,DELETE ...

    php使用curl简单抓取远程url的方法

    本文实例讲述了php使用curl抓取远程url的方法。分享给大家供大家参考。具体如下: cURL是一个非常有用的php库,可以用来连接不通类型的服务器和协议,下面是一个最基本的范例用来抓取远程网页 &lt;?php $c = curl_...

    一波PHP中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 ...

Global site tag (gtag.js) - Google Analytics