盤點(diǎn)常用語言HTTP請(qǐng)求客戶端的驚艷框架
Guzzle
Guzzle是一個(gè)PHP HTTP客戶端,可以輕松發(fā)送HTTP請(qǐng)求并輕松與Web服務(wù)集成。 它的代碼非常優(yōu)雅,同時(shí)它的功能也非常強(qiáng)大,它不僅支持同步請(qǐng)求,也支持異步請(qǐng)求,對(duì)于大型文件的下載,json數(shù)據(jù)的傳輸解析它都有很好的支持。

它是對(duì)底層http的封裝,因此對(duì)于curl和socket等沒有硬性依賴。
Requests
如果你接觸過python的話,那么你就一定接觸過這個(gè)庫,因?yàn)楹芏嘈氯私佑|python都是從爬蟲開始的,而對(duì)于簡(jiǎn)單的爬蟲來說,requests這個(gè)庫足以滿足,此外,即使是復(fù)雜的爬蟲,它也能應(yīng)付得來。

requests可以說是最優(yōu)雅的python http庫了,沒有之一。從認(rèn)證到連接池,從多文件處理到超時(shí)處理,從流式下載到分片傳輸,他都能很好地支持,并且它的代碼非常優(yōu)雅,你只需要很少的代碼就能輕松實(shí)現(xiàn)你想要請(qǐng)求的結(jié)果。
Retrofit
進(jìn)行過android開發(fā)的人員都知道Android中有個(gè)非常好用的庫叫做okhttp,而retrofit是在 okhttp上進(jìn)行的封裝,除了OkHttp的所有低級(jí)功能外,它還提供了一種構(gòu)建Java類的方法,該類抽象了HTTP詳細(xì)信息并提供了一個(gè)對(duì)于Java友好的訪問API。

HttpClient
相對(duì)于開源的語言,c#的框架基本都是微軟進(jìn)行開發(fā)的,而對(duì)于http的請(qǐng)求封裝,微軟為我們提供了非常好用的基類HttpClient,使用它我們可以輕松地進(jìn)行http的請(qǐng)求。有了它,我們不需要引入第三方類,我們可以直接使用它。

net/http
不同于其它語言,golang語言對(duì)于底層網(wǎng)絡(luò)請(qǐng)求給出了非常好用的封裝,你可以直接使用官方的http庫就可以。雖然網(wǎng)絡(luò)上存在著各種關(guān)于http請(qǐng)求的封裝,有的是類似python中的requests的封裝,但是這些分裝有些使用過于繁瑣,有些性能上有瓶頸,而官方自帶的網(wǎng)絡(luò)請(qǐng)求包可以說是最佳的選擇。
cpr
這是一個(gè)c++的網(wǎng)絡(luò)請(qǐng)求庫,它的靈感來源于python的requests,當(dāng)你學(xué)習(xí)過很多語言之后,你就會(huì)發(fā)現(xiàn),python的網(wǎng)絡(luò)請(qǐng)求庫requests是多么地優(yōu)雅,以至于很多語言都在學(xué)習(xí)這種優(yōu)雅的請(qǐng)求封裝。

cpr是一個(gè)基于libcurl的封裝,它讓網(wǎng)絡(luò)請(qǐng)求變得更加方便和優(yōu)雅。
axios
Axios基于Promise的簡(jiǎn)單HTTP客戶端,它可以用于瀏覽器端和node.js端。 它可以輕松地進(jìn)行擴(kuò)展,并且可以非常方便地和第三方框架進(jìn)行集成。 它的使用也非常簡(jiǎn)潔,很多框架都采用它進(jìn)行http請(qǐng)求的封裝。
總結(jié)
雖然網(wǎng)絡(luò)請(qǐng)求看似很簡(jiǎn)單,但是其實(shí)它也是最復(fù)雜的,我們幾乎所有的應(yīng)用都離不開網(wǎng)絡(luò)請(qǐng)求,而網(wǎng)絡(luò)上會(huì)出現(xiàn)各種狀況,有權(quán)限的驗(yàn)證,有超時(shí)的處理,有弱網(wǎng)的加強(qiáng),各種復(fù)雜的問題導(dǎo)致進(jìn)行網(wǎng)絡(luò)請(qǐng)求并不簡(jiǎn)單,但是很多前輩們用他們的智慧給了我們無數(shù)好用的框架進(jìn)行了指點(diǎn),我們因該珍惜這些代碼,珍惜并從中有所領(lǐng)悟。















 
 
 




 
 
 
 