curl是一款非常好用的的开源文件传输工具,Curl支持协定众多的文件传输程序,可下载FTP,HTT,HTTP,GOPHE,TELNET,DICT,FILE,LDAP的文件,还可以上传HTTPPOST,HTTPPUT,FTPuploading,HTTPformbasedupload,proxies,cookies,该工具多用于在Unix、多种Linux发行版中,这里给大家带来的是该軟件的windows下的版本。

軟件功能
Curl支持協定衆多的文件傳輸程序,可下載FTP,HTT,HTTP,GOPHE,TELNET,DICT,FILE,LDAP的文件,還可以上傳HTTPPOST,HTTPPUT,FTPuploading,HTTPformbasedupload,proxies,cookies。
使用方法
1、獲得一張頁面
使用命令:curl http://curl.haxx.se
这是最简单的使用方法。用这个命令获得了http://curl.haxx.se指向的页面,同样,如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。如果下载的是HTML文档,那么缺省的将不显示文件头部,即HTML文档的header。要全部显示,请加参数 -i,要只显示头部,用参数 -I。任何时候,可以使用 -v 命令看curl是怎样工作的,它向服务器发送的所有命令都会显示出来。为了断点续传,可以使用-r参数来指定传输范围。
2、表單(Form)的獲取
在WEB頁面設計中,form是很重要的元素。Form通常用來收集並向網站提交信息。提交信息的方法有兩種,GET方法和POST方法。先討論GET方法,例如在頁面中有這樣一段:
那麽浏覽器上會出現一個文本框和一個標爲“OK”的按鈕。按下這個按鈕,表單就用GET方法向服務器提交文本框的數據。例如原始頁面是在www.hotmail.com/when/birth.html看到的,然後您在文本框中輸入1905,然後按OK按鈕,那麽浏覽器的URL現在應該是:“www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK”
對于這種網頁,curl可以直接處理,例如想獲取上面的網頁,只要輸入:
curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"
就可以了。
表單用來提交信息的第二種方法叫做POST方法,POST方法和GET方法的區別在于GET方法使用的時候,浏覽器中會産生目標URL,而POST不會。類似GET,這裏有一個網頁:
浏覽器上也會出現一個文本框和一個標爲“OK”的按鈕。按下這個按鈕,表單用POST方法向服務器提交數據。這時的URL是看不到的,因此需要使用特殊的方法來抓取這個頁面:
curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.cgi
這個命令就可以做到。
1995年年末,RFC 1867定义了一种新的POST方法,用来上传文件。主要用于把本地文件上传到服务器。此时页面是这样写的:
對于這種頁面,curl的用法不同:
curl -F upload=@localfilename -F press=OK [URL]
這個命令的實質是將本地的文件用POST上傳到服務器。有關POST還有不少用法,用戶可以自己摸索。
3、使用PUT方法。
HTTP協議文件上傳的標准方法是使用PUT,此時curl命令使用-T參數:
curl -T uploadfile www.uploadhttp.com/receive.cgi
4、有關認證。
curl可以處理各種情況的認證頁面,例如下載用戶名/密碼認證方式的頁面(在IE中通常是出現一個輸入用戶名和密碼的輸入框):
curl -u name:password www.secrets.com
如果網絡是通過http代理服務器出去的,而代理服務器需要用戶名和密碼,那麽輸入:
curl -U proxyuser:proxypassword http://curl.haxx.se
任何需要輸入用戶名和密碼的時候,只在參數中指定用戶名而空著密碼,curl可以交互式的讓用戶輸入密碼。
5、引用。
有些網絡資源訪問的時候必須經過另外一個網絡地址跳轉過去,這用術語來說是:referer,引用。對于這種地址的資源,curl也可以下載:
curl -e http://curl.haxx.se daniel.haxx.se
6、指定用戶客戶端。
有些網絡資源首先需要判斷用戶使用的是什麽浏覽器,符合標准了才能夠下載或者浏覽。此時curl可以把自己“僞裝”成任何其他浏覽器:
curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" [URL]
这个指令表示curl伪装成了IE5.0,用户平台是Windows 2000。(对方服务器是根据这个字串来判断客户端的类型的,所以即使使用AIX也无所谓)。使用:
curl -A "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" [URL]
此時curl變成了Netscape,運行在PIII平台的Linux上了。
7、COOKIES
Cookie是服務器經常使用的一種記憶客戶信息的方法。如果cookie被記錄在了文件中,那麽使用命令:
curl -b stored_cookies_in_file www.cookiesite.com
curl可以根據舊的cookie寫出新cookie並發送到網站:
curl -b cookies.txt -c newcookies.txt www.cookiesite.com
8、加密的HTTP——HTTPS。
如果是通過OpenSSL加密的https協議傳輸的網頁,curl可以直接訪問:
curl https://that.secure.server.com
9、http認證。
如果是采用證書認證的http地址,證書在本地,那麽curl這樣使用:
curl -E mycert.pem https://that.secure.server.com