日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Curl 用法

發(fā)布時間:2024/4/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Curl 用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?http://chinablog.blog.51cto.com/276793/280338

http://blog.sina.com.cn/s/blog_485acedb0100i261.html

curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。本文介紹了它的簡單用法。

curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協(xié)議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認(rèn)證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認(rèn)證, HTTP上傳, 代理服務(wù)器, cookies, 用戶名/密碼認(rèn)證, 下載文件斷點續(xù)傳, 上載文件斷點續(xù)傳, http代理服務(wù)器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務(wù)器, 通過http代理服務(wù)器上傳文件到FTP服務(wù)器等等,功能十分強大。Windows操作系統(tǒng)下的網(wǎng)絡(luò)螞蟻,網(wǎng)際快車(FlashGet)的功能它都可以做 到。準(zhǔn)確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統(tǒng),用戶習(xí)慣稱curl為下載工具。

curl是瑞典curl組織開發(fā)的,您可以訪問http://curl.haxx.se/獲取它的源代碼和相關(guān)說明。鑒于curl在Linux上的 廣泛使用,IBM在AIX Linux Toolbox的光盤中包含了這個軟件,并且您可以訪問IBM網(wǎng)站http://www- 1.ibm.com/servers/aix/products/aixos/linux/altlic.html下載它。curl的最新版本是 7.10.8,IBM網(wǎng)站上提供的版本為7.9.3。在AIX下的安裝很簡單,IBM網(wǎng)站上下載的rpm格式的包。

在http://curl.haxx.se/docs/,您可以下載到UNIX格式的man幫助,里面有詳細(xì)的curl工具的使用說明。curl的 用法為:curl [options] [URL...] 其中options是下載需要的參數(shù),大約有80多個,curl的各個功能完全是依靠這些參數(shù)完成的。具體參數(shù)的使用,用戶可以參考curl的man幫 助。

下面,本文就將結(jié)合具體的例子來說明怎樣利用curl進(jìn)行下載。

1、獲得一張頁面

使用命令:curl http://curl.haxx.se

這是最簡單的使用方法。用這個命令獲得了http://curl.haxx.se指向的頁面,同樣,如果這里的URL指向的是一個文件或者一幅圖都 可以直接下載到本地。如果下載的是HTML文檔,那么缺省的將不顯示文件頭部,即HTML文檔的header。要全部顯示,請加參數(shù) -i,要只顯示頭部,用參數(shù) -I。任何時候,可以使用 -v 命令看curl是怎樣工作的,它向服務(wù)器發(fā)送的所有命令都會顯示出來。為了斷點續(xù)傳,可以使用-r參數(shù)來指定傳輸范圍。

2、表單(Form)的獲取

在WEB頁面設(shè)計中,form是很重要的元素。Form通常用來收集并向網(wǎng)站提交信息。提交信息的方法有兩種,GET方法和POST方法。先討論GET方法,例如在頁面中有這樣一段:

那么瀏覽器上會出現(xiàn)一個文本框和一個標(biāo)為“OK”的按鈕。按下這個按鈕,表單就用GET方法向服務(wù)器提交文本框的數(shù)據(jù)。例如原始頁面是在 www.hotmail.com/when/birth.html看到的,然后您在文本框中輸入1905,然后按OK按鈕,那么瀏覽器的URL現(xiàn)在應(yīng)該 是:“www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK”

對于這種網(wǎng)頁,curl可以直接處理,例如想獲取上面的網(wǎng)頁,只要輸入:

curl “www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK”

就可以了。

表單用來提交信息的第二種方法叫做POST方法,POST方法和GET方法的區(qū)別在于GET方法使用的時候,瀏覽器中會產(chǎn)生目標(biāo)URL,而POST不會。類似GET,這里有一個網(wǎng)頁:

瀏覽器上也會出現(xiàn)一個文本框和一個標(biāo)為“OK”的按鈕。按下這個按鈕,表單用POST方法向服務(wù)器提交數(shù)據(jù)。這時的URL是看不到的,因此需要使用特殊的方法來抓取這個頁面:

curl -d “birthyear=1905&press=OK” www.hotmail.com/when/junk.cgi

這個命令就可以做到。

1995年年末,RFC 1867定義了一種新的POST方法,用來上傳文件。主要用于把本地文件上傳到服務(wù)器。此時頁面是這樣寫的:

對于這種頁面,curl的用法不同:

curl -F upload=@localfilename -F press=OK URL

這個命令的實質(zhì)是將本地的文件用POST上傳到服務(wù)器。有關(guān)POST還有不少用法,用戶可以自己摸索。

3、使用PUT方法。

HTTP協(xié)議文件上傳的標(biāo)準(zhǔn)方法是使用PUT,此時curl命令使用-T參數(shù):

curl -T uploadfile www.uploadhttp.com/receive.cgi

4、有關(guān)認(rèn)證。

curl可以處理各種情況的認(rèn)證頁面,例如下載用戶名/密碼認(rèn)證方式的頁面(在IE中通常是出現(xiàn)一個輸入用戶名和密碼的輸入框):

curl -u name:password www.secrets.com

如果網(wǎng)絡(luò)是通過http代理服務(wù)器出去的,而代理服務(wù)器需要用戶名和密碼,那么輸入:

curl -U proxyuser:proxypassword http://curl.haxx.se

任何需要輸入用戶名和密碼的時候,只在參數(shù)中指定用戶名而空著密碼,curl可以交互式的讓用戶輸入密碼。

5、引用。

有些網(wǎng)絡(luò)資源訪問的時候必須經(jīng)過另外一個網(wǎng)絡(luò)地址跳轉(zhuǎn)過去,這用術(shù)語來說是:referer,引用。對于這種地址的資源,curl也可以下載:

curl -e http://curl.haxx.se daniel.haxx.se

6、指定用戶客戶端。

有些網(wǎng)絡(luò)資源首先需要判斷用戶使用的是什么瀏覽器,符合標(biāo)準(zhǔn)了才能夠下載或者瀏覽。此時curl可以把自己“偽裝”成任何其他瀏覽器:

curl -A “Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)” URL

這個指令表示curl偽裝成了IE5.0,用戶平臺是Windows 2000。(對方服務(wù)器是根據(jù)這個字串來判斷客戶端的類型的,所以即使使用AIX也無所謂)。使用:

curl -A “Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)” URL

此時curl變成了Netscape,運行在PIII平臺的Linux上了。

7、COOKIES

Cookie是服務(wù)器經(jīng)常使用的一種記憶客戶信息的方法。如果cookie被記錄在了文件中,那么使用命令:

curl -b stored_cookies_in_file www.cookiesite.com

curl可以根據(jù)舊的cookie寫出新cookie并發(fā)送到網(wǎng)站:

curl -b cookies.txt -c newcookies.txt www.cookiesite.com

8、加密的HTTP——HTTPS。

如果是通過OpenSSL加密的https協(xié)議傳輸?shù)木W(wǎng)頁,curl可以直接訪問:

curl https://that.secure.server.com

9、http認(rèn)證。

如果是采用證書認(rèn)證的http地址,證書在本地,那么curl這樣使用:

curl -E mycert.pem https://that.secure.server.com

參考讀物和注意事項:curl非常博大,用戶要想使用好這個工具,除了詳細(xì)學(xué)習(xí)參數(shù)之外,還需要深刻理解http的各種協(xié)議與URL的各個語法。這里推薦幾個讀物:

RFC 2616 HTTP協(xié)議語法的定義。

RFC 2396 URL語法的定義。

RFC 2109 Cookie是怎樣工作的。

RFC 1867 HTTP如何POST,以及POST的格式。

curl是免費軟件,IBM公司對curl不提供技術(shù)支持。

?

example:

curl -v -F "cobdate=yyyyMMdd" -F "trade=@TRADE.xml" [-F "marketdata=@MARKETDATA.xml"] [-F "settings=@SETTINGS.xml"] [-F "job=@JOB.xml"] [-F "price={false|true}"] -H"Content-Type: multipart/form-data" -o filename.zip server:port/rest/xvar_debug

總結(jié)

以上是生活随笔為你收集整理的Curl 用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。