1. 程式人生 > >強大的curl命令的介紹和一般用法

強大的curl命令的介紹和一般用法

curl,全稱CommandLine URL 或 CommandLine Uniform Resource Locator,顧名思義,curl命令是在命令列方式下工作,利用URL的語法進行資料的傳輸或者檔案的傳輸。

這個命令列工具現在多用於Unix和Linux作業系統,是一個開源的工具,功能十分強大。

下面是crul的官方網站,我們可以該網站獲取該工具的最新版本,還有最全面的使用方法。

從官網我們可以知道,該工具支援以下30多種型別的傳輸方式,這當中包含多種協議。

DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling


最常使用的有FILE、FTP、HTTP、HTTPS等協議。

對於程式設計師在說,在我們開發遠端服務的時候,比如http傳輸,SOCKET等網路程式設計時,這個工具能非常方便的作為你的驗證工具和測試工具。

比如下面是最簡單的用法,通過這種方式獲取一個頁面。我輸入的www.baidu.com甚至還不是一個完整的URL,因為沒有指明所用的協議,curl智慧地進行了選擇。

執行後,返回的是一個百度主頁的HTML程式碼。

curl www.baidu.com


本文主要還是介紹curl的一般用法,詳細用法請參閱官網。

curl的用法跟一般的linux/Unix命令無異,一般語法如下。

crul -[選項] [URL]

1. -v 選項,--verbose,指定該選項後,可以跟蹤URL的連線資訊。我們可以根據這個選項看看curl是怎麼工作的。

比如剛剛演示的那個百度連結,我們加入-v選項,就可以看看它是怎麼工作的。

加上選項後返回的資訊,包括很多重要資訊:

域名解釋過程:我們可以得到真正連線的IP地址和埠

請求頭資訊:其中有使用的協議(HTTP),協議的請求方式(GET)

迴應頭資訊:包含狀態碼(200),內容格式(text/html),內容長度等

curl -v www.baidu.com


2.-i 選項,--include,把迴應的頭資訊包含在內,跟-v大同小異,是-v的子集。

curl -i www.baidu.com


3.-I (大寫i)選項,--head,只顯示返回的頭資訊,與-v大同小異,是-v的子集。

curl -I www.baidu.com

4. -u 選項,帶使用者驗證的連線。可以訪問或獲取帶使用者驗證的URL。

curl -u username:password ftp://127.0.0.1/hello.txt
curl -u username ftp://127.0.0.1/hello.txt
curl -u username:password https://127.0.0.1/
5. -d 選項,帶請求引數的連線。比如下面的URL,user=xiaoruan&age=22就是所帶的引數。crul可以帶請求引數。

http://127.0.0.1/index.html?user=xiaoruan&age=22

curl -d 'user=xiaoruan&age=22' http://127.0.0.1/index.html

6. -X 選項,指定請求方式,我們只能URL可以有多種請求方式,最常見的是GET和POST,但請求的方式,包括GET、PUT、POST、DELETE四種方式。

這四種請求方式,對於在做RESTFUL介面開發和測試的人來說,非常方便。curl的用法如下:

curl -XGET www.baidu.com
curl -XPOST www.baidu.com
curl -XDELETE www.baidu.com
curl -XPUT www.baidu.com

curl還有很多很多實用的功能,後續的用法會持續更新,歡迎大牛們一起交流,或者留下你日常工作中常用的或者你認為非常有用的curl用法,不勝感激。