HttpClient ,FeignClient 区别
1.简单了解
Feign因为被我们广泛应用在Spring Cloud 的解决方案中,因此它被我们熟知也是因为此,Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,是以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。
HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送Http请求变得容易,而且也方便开发人员测试接口(基于Http协议的),提高了开发的效率,也方便提高代码的健壮性。
2.分别的适用场景
HttpClient适用于以下场景:
需要对HTTP请求和响应进行详细的控制和处理;
需要使用连接池来提高HTTP请求的性能;
需要发送大文件或大量数据的HTTP请求。
Feign适用于以下场景:
需要快速地创建和使用HTTP请求的接口;
需要将HTTP请求的接口直接映射到具体的实现类上;
需要在微服务架构中进行服务调用。
3HttpClient和Feign的区别和联系
- 区别
HttpClient是一个通用的HTTP客户端库,可以用于发送各种类型的HTTP请求。而Feign是一个声明式的HTTP客户端库,用于快速地创建和使用HTTP请求的接口。
HttpClient可以对HTTP请求和响应进行详细的控制和处理,支持连接池、请求重试、请求拦截器、响应拦截器等特性。而Feign的特点是可以将HTTP请求的接口直接映射到具体的实现类上,使得我们可以像调用本地方法一样来调用远程服务。
HttpClient是一个开源的Java库,由Apache软件基金会提供。而Feign是由Netflix开源的。 - 联系
HttpClient和Feign都是用于发送HTTP请求的Java库。
HttpClient和Feign都支持HTTP/1.1和HTTP/2协议。