Guzzle
Guzzle是一个PHP HTTP客户端,可以轻松发送HTTP请求并轻松与Web服务集成。 它的代码非常优雅,同时它的功能也非常强大,它不仅支持同步请求,也支持异步请求,对于大型文件的下载,json数据的传输解析它都有很好的支持。
它是对底层http的封装,因此对于curl和socket等没有硬性依赖。
Requests
如果你接触过python的话,那么你就一定接触过这个库,因为很多新人接触python都是从爬虫开始的,而对于简单的爬虫来说,requests这个库足以满足,此外,即使是复杂的爬虫,它也能应付得来。
requests可以说是最优雅的python http库了,没有之一。从认证到连接池,从多文件处理到超时处理,从流式下载到分片传输,他都能很好地支持,并且它的代码非常优雅,你只需要很少的代码就能轻松实现你想要请求的结果。
Retrofit
进行过android开发的人员都知道Android中有个非常好用的库叫做okhttp,而retrofit是在 okhttp上进行的封装,除了OkHttp的所有低级功能外,它还提供了一种构建Java类的方法,该类抽象了HTTP详细信息并提供了一个对于Java友好的访问API。
HttpClient
相对于开源的语言,c#的框架基本都是微软进行开发的,而对于http的请求封装,微软为我们提供了非常好用的基类HttpClient,使用它我们可以轻松地进行http的请求。有了它,我们不需要引入第三方类,我们可以直接使用它。
net/http
不同于其它语言,golang语言对于底层网络请求给出了非常好用的封装,你可以直接使用官方的http库就可以。虽然网络上存在着各种关于http请求的封装,有的是类似python中的requests的封装,但是这些分装有些使用过于繁琐,有些性能上有瓶颈,而官方自带的网络请求包可以说是最佳的选择。
cpr
这是一个c++的网络请求库,它的灵感来源于python的requests,当你学习过很多语言之后,你就会发现,python的网络请求库requests是多么地优雅,以至于很多语言都在学习这种优雅的请求封装。
cpr是一个基于libcurl的封装,它让网络请求变得更加方便和优雅。
axios
Axios基于Promise的简单HTTP客户端,它可以用于浏览器端和node.js端。 它可以轻松地进行扩展,并且可以非常方便地和第三方框架进行集成。 它的使用也非常简洁,很多框架都采用它进行http请求的封装。
总结
虽然网络请求看似很简单,但是其实它也是最复杂的,我们几乎所有的应用都离不开网络请求,而网络上会出现各种状况,有权限的验证,有超时的处理,有弱网的加强,各种复杂的问题导致进行网络请求并不简单,但是很多前辈们用他们的智慧给了我们无数好用的框架进行了指点,我们因该珍惜这些代码,珍惜并从中有所领悟。