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

它是對底層http的封裝,因此對于curl和socket等沒有硬性依賴。
Requests
如果你接觸過python的話,那么你就一定接觸過這個庫,因為很多新人接觸python都是從爬蟲開始的,而對于簡單的爬蟲來說,requests這個庫足以滿足,此外,即使是復(fù)雜的爬蟲,它也能應(yīng)付得來。

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

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

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

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