<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          快來看,敖丙還不會curl

          共 2807字,需瀏覽 6分鐘

           ·

          2020-06-21 23:21


          不知道大家在平時有沒有用過curl,之前我是沒怎么用的,最近也開始用起來了。

          curl應該還算是一個比較常見的東西吧?比如說,我們在學習Elasticsearch的時候去看官方文檔,就可以看到curl的蹤影,有的時候看別人的寫的文檔也會看到curl的蹤影。

          df54439f12959953aac5b9838cb7ab6d.webp

          這篇文章來簡單介紹一下curl以及它的用法,要是大家再遇上curl了,那就知道這是什么了。

          介紹curl

          什么是curl

          我們進入官網(wǎng),看到簡介是這樣的:

          command line tool and library for transferring data with URLs

          curl是在命令行下工作的,利用URL的語法進行數(shù)據(jù)的傳輸

          看起來有點抽象,我們可以簡單地理解為:我們會用curl發(fā)出網(wǎng)絡請求,然后得到和提取數(shù)據(jù)

          為什么我們要用curl?以HTTP請求為例,如果要發(fā)出請求,我們常用的有POSTMAN、IDEA也集成HTTP Client等等

          上面這些工具不香嗎?講真,還是挺香的。

          那有了上面的工具,為什么我們還要用curl呢?

          我們不是所有的環(huán)境都有POSTMANIDEA的,比如說我們的Centos系統(tǒng) 。此時我們又想要發(fā)出網(wǎng)絡請求,我們就可以通過curl去幫我們做。

          curl不單單能支持http請求,它支持的協(xié)議有30+種,最常使用的有FILE、FTP、HTTP、HTTPS等。

          總的來說:curl是一款很好用的網(wǎng)絡請求工具,在瀏覽文檔的時候都會有它的身影,如果你還不知道這個工具,建議可以了解一下。

          我現(xiàn)在把系統(tǒng)常用的接口的請求給寫到一個文檔上,想要執(zhí)行哪個接口,檢索出來,在命令行執(zhí)行一下就好了,還是非常方便的。(我命令行窗口會一直常開,幾乎不用開POSTMAN了)

          4b0253588b860aeb80e68cf4071ac466.webp

          體驗curl

          我們首先來體驗一下最簡單的curl 用法:

          curl www.baidu.com

          我們可以看到返回baidu的HTML信息:

          6df14076a045239427c217fc46f8b8f8.webp

          現(xiàn)在我們想看百度給我們返回的響應頭信息,于是我們可以這樣干:

          curl -i www.baidu.com
          22edf534463e89838eab07bc21497052.webp

          響應頭的信息還不夠,我現(xiàn)在請求頭和響應頭都想看:

          curl -v www.baidu.com
          a11567d1939b306036089ed70f1e5c41.webp

          OK,現(xiàn)在我們熱身完了。我們平時可能會發(fā)個GET請求,然后把參數(shù)帶給接口的吧?在curl里怎么做呢?其實很簡單,跟瀏覽器的方式是一樣的,我們把參數(shù)拼在鏈接后面就可以了(這里注意帶單引號):

          curl  '127.0.0.1/send?receivers=3y&age=24'

          打到斷點可以看到,我們成功把參數(shù)給帶過去了:

          79a3661a81e5839761c79cdd2d6fa083.webp

          發(fā)完GET,我們有的時候也會使用POST請求,怎么做呢?

          curl -X POST --data "receivers=3y" '127.0.0.1/send'

          接口也是能拿到參數(shù)的,只不過我們發(fā)的是POST請求。

          7e042821ec4f72fcde0ed39ab10ba146.webp

          上面的命令好像復雜了一點,其實不然。-X POST表示發(fā)的是POST請求,而--date 后面跟著表示要帶什么參數(shù)過去。

          我們在后面加個-v參數(shù)就知道上面是不是真的發(fā)了POST請求。

          當我們執(zhí)行curl -X POST --data "receivers=三歪" '127.0.0.1/send' -v時,看到返回的信息會告訴我們(其實我們不需要使用-X POST在標明這是一個POST請求,curl已經(jīng)可以幫我們判斷了)

          b47657a0f4148ebcf9befa977452671e.webp

          在發(fā)POST請求的時候,我們也有更加簡便的參數(shù)(-d來標明我們這是POST請求的數(shù)據(jù)體):

          curl -d "receivers=三歪" '127.0.0.1/send'

          眾所周知HTTP支持好幾種動作,我們想發(fā)PUT請求,那就使用-X PUT就可以發(fā)出PUT請求了。(如果不指定,默認就是GET請求)

          OK,現(xiàn)在我們已經(jīng)會發(fā)GETPOST請求了。現(xiàn)在我們的接口前后端交互一般用的是json格式,于是我們要發(fā)送一個POST請求并且告訴服務端我們的參數(shù)是json格式,怎么做?實際上就是加頭信息嘛~

          curl -d '{"receivers":"3y"}' -H 'Content-Type: application/json' "127.0.0.1/sendWithJSON"

          我們可以看到,用-H 后面就可以增加頭信息

          4ad53fc0e25e8be96c80688a6783f106.webp

          很多時候,我們在測接口的時候都需要登錄的,一般我們都要為其添加Cookie信息。在curl里邊也好辦,我們使用-b 后帶Cookie的信息就好了。

          curl -d '{"receivers":"3y"}' -b 'aaaa' -H 'Content-Type: application/json' "127.0.0.1/sendWithJSON"

          上面就是基本在開發(fā)中常用的參數(shù)了,其實也不是很多吧。

          curl是一個請求的工具,服務端返回的文件也是可以下載的。我們通過-o來下載百度返回的HTML

          b69e8885a108aa1c99154d9c2c2b31a5.webp

          -O參數(shù)將服務器回應保存成文件,并將 URL 的最后部分當作文件名。

          再回過頭來看Elasticsearch給我們的命令,應該就能看得懂了:

          curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-darwin-x86_64.tar.gz

          小技巧:我們在Chrome瀏覽器調(diào)試的時候,可以把請求的信息復制為curl格式的。

          c1b22e1384c8ff53d8b0a38014f0c8b9.webp

          三歪小故事

          97c04c45761816ad157537628e311d49.webp

          在前陣子我也開始用起了curl來請求接口,有一次由于域名要切換的原因,找到了運維大佬幫我弄一下。運維大佬說:“你加個Host 指定一下”。我當時只用curl 來發(fā)點請求什么的,加個頭信息這種肯定是忘了(不會);

          只能雙手離開鍵盤,讓大佬操作了

          curl --help可以找到curl所有的參數(shù)。

          彩蛋:

          curl -O http://aliimg.changba.com/cache/photo/[260929610-260939610]_640_640.jpg

          參考資料:

          • https://www.cnblogs.com/duhuo/p/5695256.html
          • http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

          各類知識點總結(jié)

          下面的文章都有對應的原創(chuàng)精美PDF,在持續(xù)更新中,可以來找我催更~

          掃碼或者微信搜Java3y?免費領(lǐng)取原創(chuàng)思維導圖、精美PDF。在公眾號回復「888」領(lǐng)取,PDF內(nèi)容純手打有任何不懂歡迎來問我。


          原創(chuàng)電子書
          0db63297508314dc571e1aea87de55fc.webp

          原創(chuàng)思維導圖

          37eb992b96224c66a71b77aa13327d4e.webp


          614373cb7f924aa26a1d22cd385480fd.webp

          f3e5e4bc6cf11c132e3ea724d9355489.webp

          f3e5e4bc6cf11c132e3ea724d9355489.webp

          我是三歪,一個想要變強的男人,感謝大家的點贊收藏和轉(zhuǎn)發(fā),下期見。
          瀏覽 84
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人妻无码一区二区 | 五月天成人网址 | 成人理论视频三区 | 3344gc在线观看入口 | 亚洲 欧美 国产 日韩 动漫第一页 |