Http Client 如何选择

现在常用的网络请求方式主要有:Apache HttpClient、JDK HttpURLConnection、OKHttp。

一、HttpClient

优势

HttpClient 是Apache的一个三方网络框架,网络请求做了完善的封装,api众多,用起来比较方便,开发快。实现比较稳定,bug比较少。

劣势

正式由于其api众多,使我们很难再不破坏兼容性的情况下对其进行扩展。

二、HttpURLConnection

优势

HttpURLConnection是一个多用途、轻量级的http客户端,由JDK实现,容易的扩展和优化的HttpURLConnection,不依赖第三方库。

劣势

对网络请求的封装没有HttpClient彻底,api比较简单,用起来没有那么方便,而且存在一定的bug。

三、OkHttp

okhttp是专注于提升网络连接效率的http客户端。

优势

  1. 它能实现同一ip和端口的请求重用一个socket,这种方式能大大降低网络连接的时间,和每次请求都建立socket,再断开socket的方式相比,降低了服务器的压力。

  2. okhttp 对http和https都有良好的支持。

  3. 成熟的网络请求解决方案,比HttpURLConnection更好用。

劣势

okhttp请求网络切换回来是在线程里面的,不是在主线程,不能直接刷新UI,需要我们手动处理,比较麻烦。

彩蛋

这里提供一套基于Okhttp3,应用于Spring Cloud微服务中的Http-Client-Plus框架。

  • 动态配置超时时间
  • 收集第三方请求日志
  • Prometheus监控
原文地址:https://www.cnblogs.com/kancy/p/13023877.html