Httpclient
    用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 JDK 自带的 URLConnection,提升了易用性和灵活性,使客户端发送 HTTP 请求变得容易,提高了开发的效率。
    Okhttp
    是安卓端最火的轻量级框架
    HttpURLConnection
    是java的标准类,它继承自 URLConnection,可用于向指定网站发送 GET 请求、POST 请求。HttpURLConnection 使用比较复杂,不像 HttpClient 那样容易使用。
    RestTemplate
    Spring提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程 HTTP 服务的方法,能够大大提高客户端的编写效率。

    微服务中用到最多的Feign、Dubbo
    feign与openfeign区别:openfeign是spring cluster对feign进行了整合,功能上进行了增强

    属于rpc框架
    优势:Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求。它像 Dubbo 一样,consumer 直接调用接口方法调用 provider,而不需要通过常规的 Http Client 构造请求再解析返回数据。它解决了让开发者调用远程接口就跟调用本地方法一样,无需关注与远程的交互细节,更无需关注分布式环境开发。

    Ribbon与feign对比
    相对来说Ribbon在本地的配置比较多

    Feign 的继承特性可以让服务的接口定义单独抽出来,作为公共的依赖,以方便使用。
    底层帮忙实现了负载均衡
    底层帮忙集成了netflix-ribbon

    默认没有开启日志
    定义一个全局配置类
    指定日志Bean
    懒加载,第一次访问比较慢
    日志级别:

    • NONE【性能最佳,适用于生产】:不记录任何日志(默认值)。
    • BASIC【适用于生产环境追踪问题】:仅记录请求方法、URL、响应状态代码以及执行时间。
    • HEADERS:记录BASIC级别的基础上,记录请求和响应的header。
    • FULL【比较适用于开发及测试环境定位问题】:记录请求和响应的header、body和元数据。

    通过拦截器实现认证
    通常我们调用的接口都是有权限控制的,很多时候可能认证的值是通过参数去传递的,还有就是通过请求头去传递认证信息,比如 Basic 认证方式。 接口鉴权