在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

cURL的使用方法

xCb1_yikoulinux ? 來源:一口Linux ? 作者:一口Linux ? 2022-08-05 11:54 ? 次閱讀

認識 cURL

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. libcurl offers a myriad of powerful features

curl 是常用的開源命令行工具,用來請求 Web 服務器。它的名字就是客戶端(client)的 URL 工具的意思。它的功能非常強大,命令行參數多達幾十種。它支持包括 FTP、HTTP、HTTPS、FTP、SCP,SFTP 數十種協議。如能熟練使用,可以在很多應用場景下,發揮巨大的價值。

cURL 的使用

代替 Postman ?

curlhttps://www.baidu.com

如上命令,不帶有任何參數時,curl 就是發出 GET 請求,服務器返回的內容會在命令行輸出。當然,你還可以為其添加各種參數(如 -A、-b、-c、-d、-e、-F、-H 等等),使得可以完成更多復雜任務;

其實,如果只是簡單的 Post、Get 請求,用 cURL 做像接口測試的工作是非常方便的。

有人說了,Postman 它不香嗎?

是的,挺香的,但是當你在環境受限的情況下,比如 在 linux 服務器上想測試一下接口通不通沒有 Postman 怎么辦?

這時候 cURL 就體現出它的價值了。此外貼心的 Postman,還為我們提供了各種語言和 cURL 的 snippet,方便你在 Postman 編輯完成后直接拿走開發和調試使用。

db97bf1c-1471-11ed-ba43-dac502259ad0.jpg

如上圖,你直接 copy 內容,然后在命令行執行就可以了。

dbbf1eae-1471-11ed-ba43-dac502259ad0.jpg

小工具了解一下

jsonplaceholder http://jsonplaceholder.typicode.com/

免費的 HTTP 請求假數據接口,前端同學可以了解一下

  • 不需引入外部 js 文件。
  • 同時支持 http 和 https 請求。
  • 同時支持 post 請求和 get 請求。

看看 cookie?

curl-bcookies.txthttps://www.youku.com

上面命令將服務器的 HTTP 回應所設置 Cookie 寫入文本文件 cookies.txt。

上傳個文件?

網站中上傳文件功能很普遍,然而你是怎么調試的呢?

打開頁面,選擇文件后再點擊上傳按鈕?然后 F12 看看 Request、Response? 或者打開 Postman 進行類似步驟?

可真夠麻煩的。用 cURL 一行命令搞定

這里先介紹一下 -v 參數:

使用 -v 參數使 curl 打印有關請求和響應的詳細信息。以 > 為前綴的行是發送給服務器的數據,以 < 為前綴的行是從服務器接收的數據,以 * 開頭的行是雜項信息,如連接信息、SSL 握手信息、協議信息等。

我們看個例子,搞下百度:

?curl-vhttps://www.baidu.com
*Trying110.242.68.3:443...
*Connectedtowww.baidu.com(110.242.68.3)port443(#0)
*ALPN:offersh2
*ALPN:offershttp/1.1
*TLSv1.3(OUT),TLShandshake,Clienthello(1):
*TLSv1.3(IN),TLShandshake,Serverhello(2):
*TLSv1.2(IN),TLShandshake,Certificate(11):
*TLSv1.2(IN),TLShandshake,Serverkeyexchange(12):
*TLSv1.2(IN),TLShandshake,Serverfinished(14):
*TLSv1.2(OUT),TLShandshake,Clientkeyexchange(16):
*TLSv1.2(OUT),TLSchangecipher,Changecipherspec(1):
*TLSv1.2(OUT),TLShandshake,Finished(20):
*TLSv1.2(IN),TLShandshake,Finished(20):
*SSLconnectionusingTLSv1.2/ECDHE-RSA-AES128-GCM-SHA256
*ALPN:serveracceptedhttp/1.1
*Servercertificate:
*subject:C=CN;ST=beijing;L=beijing;OU=serviceoperationdepartment;O=BeijingBaiduNetcomScienceTechnologyCo.,Ltd;CN=baidu.com
*startdate:Jul505022022GMT
*expiredate:Aug605012023GMT
*subjectAltName:host"www.baidu.com"matchedcert's"*.baidu.com"
*issuer:C=BE;O=GlobalSignnv-sa;CN=GlobalSignRSAOVSSLCA2018
*SSLcertificateverifyok.
>GET/HTTP/1.1
>Host:www.baidu.com
>User-Agent:curl/7.83.1
>Accept:*/*
>
*Markbundleasnotsupportingmultiuse

百度一下,你就知道
新聞hao123地圖視頻貼吧更多產品
關于百度AboutBaidu

©2017Baidu使用百度前必讀意見反饋京ICP證030173號

*Connection#0tohostwww.baidu.comleftintact

可以看到,包括握手過程、請求、響應信息一應俱全。

加 -v 參數的作用就是就是為了跟蹤(trace)一下請求,看看具體細節,這跟你 F12 的目的是一樣的。此外,如果你想看到具體的請求、響應時間點可以加入 --trace-time 參數,最后的命令如下:

curl-v--trace-timehttps://www.baidu.com

效果是這樣的:

?curl-v--trace-timehttps://www.baidu.com
1850.680025*Trying110.242.68.4:443...
1850.692744*Connectedtowww.baidu.com(110.242.68.4)port443(#0)
1850.693142*ALPN:offersh2
1850.693165*ALPN:offershttp/1.1
1850.706507*TLSv1.3(OUT),TLShandshake,Clienthello(1):
1850.723346*TLSv1.3(IN),TLShandshake,Serverhello(2):
1850.723509*TLSv1.2(IN),TLShandshake,Certificate(11):
1850.724242*TLSv1.2(IN),TLShandshake,Serverkeyexchange(12):
1850.724370*TLSv1.2(IN),TLShandshake,Serverfinished(14):
1850.724572*TLSv1.2(OUT),TLShandshake,Clientkeyexchange(16):
1850.724628*TLSv1.2(OUT),TLSchangecipher,Changecipherspec(1):
1850.724727*TLSv1.2(OUT),TLShandshake,Finished(20):
1850.740045*TLSv1.2(IN),TLShandshake,Finished(20):
1850.740086*SSLconnectionusingTLSv1.2/ECDHE-RSA-AES128-GCM-SHA256
1850.740105*ALPN:serveracceptedhttp/1.1
1850.740129*Servercertificate:
1850.740160*subject:C=CN;ST=beijing;L=beijing;OU=serviceoperationdepartment;O=BeijingBaiduNetcomScienceTechnologyCo.,Ltd;CN=baidu.com
1850.740182*startdate:Jul505022022GMT
1850.740200*expiredate:Aug605012023GMT
1850.740256*subjectAltName:host"www.baidu.com"matchedcert's"*.baidu.com"
1850.740298*issuer:C=BE;O=GlobalSignnv-sa;CN=GlobalSignRSAOVSSLCA2018
1850.740317*SSLcertificateverifyok.
1850.740391>GET/HTTP/1.1
1850.740391>Host:www.baidu.com
1850.740391>User-Agent:curl/7.83.1
1850.740391>Accept:*/*
1850.740391>
1850.753580*Markbundleasnotsupportingmultiuse
1850.753605

接下來就是上傳的部分了,-F 參數用來向服務器上傳二進制文件。

?curl-v--trace-time'https://postman-echo.com/post'-F'fileName=@"/Users/xiaobox/Desktop/cookies.txt"'

解釋一下這行命令:

-F 參數可以指定 MIME 類型,也可以改文件名。

curl-v--trace-time'https://postman-echo.com/post'-F'fileName=@/Users/xiaobox/Desktop/cookies.txt;type=text/plain;filename=me.txt'

最后總結,如果你想用一條 cURL 命令測試上傳接口,可以利用類似下面的參數組合:

curl-v--trace-time'https://postman-echo.com/post'-F'fileName=@/Users/xiaobox/Desktop/cookies.txt;type=text/plain;filename=me.txt'

弱網測試

顧名思義,就是模擬你的客戶端用戶在網絡較差的環境下,比如 網速很低的時候,網絡請求的情況。

我們還是拿百度舉例子,你可以用以下一組命令在 1k 和 200B 的不同速度下對比看看響應情況:

curl-v--trace-time--limit-rate1khttp://www.baidu.com

curl-v--trace-time--limit-rate200Bhttp://www.baidu.com

注意 limit-rate 是同時限制 request 和 response,也就是 請求、響應都限制成一樣的速率了。

自動重定向

?curlhttps://www.bilibili.com
Redirectingto"http://www.bilibili.com/?rt=V%2FymTlOu4ow%2Fy4xxNWPUZ91QLE3Z%2BfhZ8P5SQVD30Nw%3D">//www.bilibili.com/?rt=V%2FymTlOu4ow%2Fy4xxNWPUZ91QLE3Z%2BfhZ8P5SQVD30Nw%3D.%

你看到了 B 站給我們重定向了,我們可以利用 -L 參數讓 cURL 自動重定向。

curl-Lhttsp://www.bilibili.com

注意 是大寫的 L

科學上網后 cURL 不通?

假設你已經配置了科學上網,我們直接 cURL google 看一下

?curl-vhttps://www.google.com
*Trying74.86.151.167:443...
*connectto74.86.151.167port443failed:Operationtimedout
*Failedtoconnecttowww.google.comport443after75400ms:Operationtimedout
*Closingconnection0
curl:(28)Failedtoconnecttowww.google.comport443after75400ms:Operationtimedout

一般情況下是失敗的

再假設你用的 VPN 客戶端是 clashX 因為我用的是這個,就用這個舉例。

dbd1e494-1471-11ed-ba43-dac502259ad0.jpg

點擊 “復制終端代理命令”,然后在你的終端執行一下:

?exporthttps_proxy=http://127.0.0.1:7890http_proxy=http://127.0.0.1:7890all_proxy=socks5://127.0.0.1:7890

再用 cURL, 你會發現就可以成功了。如果你用的不是 clashX 其他的 VPN 客戶端應該也有類似功能

保存響應內容 ?

可以利用 -o 參數將響應的結果保存到文件中:

curl-ogoogle.txthttps://www.google.com

下載文件并顯示進度?

cURL 可以當 wget 用

-o 參數將服務器的回應保存成文件,等同于 wget 命令

下載文件的同時顯示進度可以使用類似下面的命令:

?curl-#-opic.jpghttps://w.wallhaven.cc/full/pk/wallhaven-pk6993.png

參數太多,不想拼?

cURL 是好用,但如果我是個 web 應用,需要拼接一堆參數,那太麻煩了,簡直勸退。

是的,所以 瀏覽器也想到了,你可以在瀏覽器先正常發出請求,然后利用瀏覽器的工具將 cURL 的命令復制出來。

dbfb7142-1471-11ed-ba43-dac502259ad0.jpg

可以復制單個請求,也可以是頁面的所有請求。然后你就可以粘貼到終端執行了。

是不是很方便 ?

獲取所在地 IP

curl-Ltool.lu/ip
#or
curl-Lip.tool.lu
dc2a585e-1471-11ed-ba43-dac502259ad0.jpg

獲取天氣預報?

我們看看北京的:

curl'wttr.in/Beijing?lang=zh'
dc5544a6-1471-11ed-ba43-dac502259ad0.jpg

吐槽蘋果

這是一則去年關于 cURL 的舊新聞:https://www.163.com/dy/article/GTOGN8D20544B1XD.html

curl 作者吐槽蘋果把他當做免費工具人

了解這樣的新聞可以幫助你更深刻地認識開源、商業以及整個軟件的生態情況。
審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴

原文標題:妙用 cURL

文章出處:【微信號:yikoulinux,微信公眾號:一口Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用curl+wget抓取網頁方法

    Linux抓取網頁,簡單方法是直接通過 curl 或 wget 兩種命令。curl 和 wget 命令,目前已經支持Linux和Windows平臺,后續將介紹。curl 和 wget支
    發表于 02-25 09:54

    curl文件下載工具的使用方法

    curl文件下載工具的使用方法 curl是一個利用URL語法在命令行方
    發表于 12-04 13:03 ?1840次閱讀

    示波器的使用方法

    示波器的使用方法 1 示波器使用        本節介紹示波器的使用方法。示波器種類、型號很多,功能也不同。
    發表于 01-14 13:06 ?1.8w次閱讀

    Matlab使用方法和程序設計

    Matlab使用方法和程序設計 實驗一 Matlab使用方法和程序設計一、
    發表于 10-17 00:18 ?5508次閱讀
    Matlab<b class='flag-5'>使用方法</b>和程序設計

    示波器的使用方法

    數字萬用表使用方法和示波器的使用方法詳解。
    發表于 03-14 10:38 ?32次下載

    xilinx 原語使用方法

    xilinx 原語使用方法
    發表于 10-17 08:57 ?11次下載
    xilinx 原語<b class='flag-5'>使用方法</b>

    CC debuger的使用方法

    CC debuger的使用方法
    發表于 10-18 10:07 ?5次下載

    ORCAD PSPICE 使用方法

    ORCAD PSPICE 使用方法
    發表于 10-18 14:52 ?39次下載
    ORCAD PSPICE <b class='flag-5'>使用方法</b>

    xilinx原語使用方法

    xilinx原語使用方法
    發表于 10-19 08:50 ?15次下載
    xilinx原語<b class='flag-5'>使用方法</b>

    git使用方法

    git使用方法
    發表于 10-24 09:45 ?19次下載
    git<b class='flag-5'>使用方法</b>

    示波器的使用方法(三):示波器的使用方法詳解

    示波器的使用方法并非很難,重點在于正確使用示波器的使用方法。往期文章中,小編對模擬示波器的使用方法和數字示波器的使用方法均有所介紹。為增進大家對示波器的
    的頭像 發表于 12-24 20:37 ?3590次閱讀

    simple curl操作類

    ./oschina_soft/curl.zip
    發表于 05-30 11:02 ?1次下載
    simple <b class='flag-5'>curl</b>操作類

    Linux系統如何安裝curl

    `curl`是用于在本地計算機與遠程服務器之間傳輸數據的命令行工具。使用curl時您可以使用HTTP,HTTPS, SCP , SFTP和FTP等協議下載或上傳數據。
    的頭像 發表于 12-06 16:53 ?1.7w次閱讀

    curl命令接入onenet簡單使用

    上一篇帖子講解了用fiddler軟件生成http報文然后上傳數據點到onenet,恰好在網上搜索到了cuel命令也可以,所以在這里就想發一篇帖子記錄下吧。用curl命令十分簡單快捷,但是需要
    發表于 10-20 17:11 ?1次下載
    <b class='flag-5'>curl</b>命令接入onenet簡單使用

    如何使用 cURL 測試 HTTP 協議

    cURL是一個強大的命令行工具,用于傳輸數據,支持多種協議,包括HTTP、HTTPS、FTP等。使用cURL測試HTTP協議可以幫助你理解HTTP請求和響應的工作原理,以及調試和驗證你的HTTP服務
    的頭像 發表于 12-30 09:26 ?729次閱讀
    主站蜘蛛池模板: 国产一级aa大片毛片 | 日韩免费在线视频 | 高h污快穿文汁水四溅 | 亚洲精品久久久久午夜福 | 亚洲成成品网站有线 | 九九精品免费观看在线 | 久久精品综合网 | 97午夜理伦片在线影院 | 亚洲1区2区3区4区 | 日本黄色视 | 国产亚洲精品久久久极品美女 | 欧美人成在线观看 | 操操片| 涩久久 | 99热色| 四虎音影| 五月天婷婷在线免费观看 | 与子乱刺激对白在线播放 | 欧美成人全部费免网站 | 天天色天| 中文一级黄色片 | 欧美日韩视频综合一区无弹窗 | 四虎永久影院永久影库 | 国产小视频免费观看 | 成人国产一区 | 欧美色交| 国产亚洲精品成人一区看片 | 亚洲一区二区免费看 | 天堂资源8中文最新版在线 天堂资源地址在线 | 猫色网站| 99久久香蕉国产综合影院 | 午夜视频你懂的 | 亚洲狠狠狠一区二区三区 | 九色亚洲| 色一欲一性一乱一区二区三区 | 你懂的网址免费国产 | 国产一卡二卡3卡4卡四卡在线视频 | 成人啪啪网站 | 成人午夜啪啪免费网站 | 99成人 | 久久婷婷色一区二区三区 |