cURL是一個(gè)利用URL語(yǔ)法在命令行下工作的文件傳輸工具,1997年首次發(fā)行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱(chēng)cURL為下載工具。cURL還包含了用于程序開(kāi)發(fā)的libcurl。
cURL支持的通信協(xié)議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
curl還支持SSL認(rèn)證、HTTP POST、HTTP PUT、FTP上傳, HTTP form based upload、proxies、HTTP/2、cookies、用戶名+密碼認(rèn)證(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。
獲得頁(yè)面 調(diào)用item_get_app tao寶商品詳情數(shù)據(jù)
使用命令:
?
這是最簡(jiǎn)單的使用方法。用這個(gè)命令獲得了http://curl.haxx.se指向的頁(yè)面,同樣,如果這里的URL指向的是一個(gè)文件或者一幅圖都可以直接下載到本地。如果下載的是HTML文檔,那么缺省的將只顯示文件頭部,即HTML文檔的header。要全部顯示,請(qǐng)加參數(shù) -i,要只顯示頭部,用參數(shù) -I。任何時(shí)候,可以使用 -v 命令看curl是怎樣工作的,它向服務(wù)器發(fā)送的所有命令都會(huì)顯示出來(lái)。為了斷點(diǎn)續(xù)傳,可以使用-r參數(shù)來(lái)指定傳輸范圍。?[1]?
獲取表單
在WEB頁(yè)面設(shè)計(jì)中,form是很重要的元素。Form通常用來(lái)收集并向網(wǎng)站提交信息。提交信息的方法有兩種,GET方法和POST方法。先討論GET方法,例如在頁(yè)面中有這樣一段:
1文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-426904.html 2 3 4 |
|
那么瀏覽器上會(huì)出現(xiàn)一個(gè)文本框和一個(gè)標(biāo)為“OK”的按鈕。按下這個(gè)按鈕,表單就用GET方法向服務(wù)器提交文本框的數(shù)據(jù)。
例如原始頁(yè)面是在 www.hotmail. com/when/birth.html看到的,然后您在文本框中輸入1905,然后按OK按鈕,那么瀏覽器的URL現(xiàn)在應(yīng)該是:“www.hotmail. com/when/junk.cgi?birthyear=1905&press=OK”
對(duì)于這種網(wǎng)頁(yè),curl可以直接處理,例如想獲取上面的網(wǎng)頁(yè),只要輸入:
1 |
|
就可以了。
表單用來(lái)提交信息的第二種方法叫做POST方法,POST方法和GET方法的區(qū)別在于GET方法使用的時(shí)候,瀏覽器中會(huì)產(chǎn)生目標(biāo)URL,而POST不會(huì)。類(lèi)似GET,這里有一個(gè)網(wǎng)頁(yè):
1 2 3 4 |
|
瀏覽器上也會(huì)出現(xiàn)一個(gè)文本框和一個(gè)標(biāo)為“OK”的按鈕。按下這個(gè)按鈕,表單用POST方法向服務(wù)器提交數(shù)據(jù)。
這時(shí)的URL是看不到的,因此需要使用特殊的方法來(lái)抓取這個(gè)頁(yè)面:
1 |
|
這個(gè)命令就可以做到。
1995年年末,RFC 1867定義了一種新的POST方法,用來(lái)上傳文件。主要用于把本地文件上傳到服務(wù)器。此時(shí)頁(yè)面是這樣寫(xiě)的:
1 2 3 4 |
|
對(duì)于這種頁(yè)面,curl的用法不同:
curl -F upload=@localfilename -F press=OK URL
這個(gè)命令的實(shí)質(zhì)是將本地的文件用POST上傳到服務(wù)器。
有關(guān)POST還有不少用法,用戶可以自己摸索。
使用PUT
HTTP協(xié)議文件上傳的標(biāo)準(zhǔn)方法是使用PUT,此時(shí)curl命令使用-T參數(shù):?[1]?
1 |
|
有關(guān)認(rèn)證
curl可以處理各種情況的認(rèn)證頁(yè)面,例如下載用戶名/密碼認(rèn)證方式的頁(yè)面(在IE中通常是出現(xiàn)一個(gè)輸入用戶名和密碼的輸入框):
curl -u name:password www.secrets. com
如果網(wǎng)絡(luò)是通過(guò)http代理服務(wù)器出去的,而代理服務(wù)器需要用戶名和密碼,那么輸入:
curl -U proxyuser:proxypassword http://curl.haxx. se
任何需要輸入用戶名和密碼的時(shí)候,只在參數(shù)中指定用戶名而空著密碼,curl可以交互式的讓用戶輸入密碼。
引用
有些網(wǎng)絡(luò)資源訪問(wèn)的時(shí)候必須經(jīng)過(guò)另外一個(gè)網(wǎng)絡(luò)地址跳轉(zhuǎn)過(guò)去,這用術(shù)語(yǔ)來(lái)說(shuō)是:referer,引用。
對(duì)于這種地址的資源,curl也可以下載:
1 |
|
指定用戶端
有些網(wǎng)絡(luò)資源首先需要判斷用戶使用的是什么瀏覽器,符合標(biāo)準(zhǔn)了才能夠下載或者瀏覽。此時(shí)curl可以把自己“偽裝”成任何其他瀏覽器:
1 |
|
這個(gè)指令表示curl偽裝成了IE5.0,用戶平臺(tái)是Windows 2000。(對(duì)方服務(wù)器是根據(jù)這個(gè)字串來(lái)判斷客戶端的類(lèi)型的,所以即使使用AIX也無(wú)所謂)。
使用:
1 |
|
此時(shí)curl變成了Netscape,運(yùn)行在PIII平臺(tái)的Linux上了。
COOKIES
Cookie是服務(wù)器經(jīng)常使用的一種記憶客戶信息的方法。如果cookie被記錄在了文件中,那么使用命令:
1 |
|
curl可以根據(jù)舊的cookie寫(xiě)出新cookie并發(fā)送到網(wǎng)站:
1 |
|
加密HTTP
如果是通過(guò)OpenSSL加密的https協(xié)議傳輸?shù)木W(wǎng)頁(yè),curl可以直接訪問(wèn):
1 |
|
http認(rèn)證
如果是采用證書(shū)認(rèn)證的http地址,證書(shū)在本地,那么curl這樣使用:?[1]?
1 |
|
到了這里,關(guān)于curl方式調(diào)用電商API接口示例 詳細(xì)介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!