Feign是一个声明式的HTTP客户端,它可以帮助Java开发者更方便地使用HTTP请求远程API服务。在底层,Feign使用了Java原生的HttpURLConnection实现HTTP请求。
具体来说,Feign会将定义的接口转换为一个HTTP请求,并使用Java原生的HttpURLConnection发送请求到目标服务端。Feign底层使用了Java的反射机制,将接口中的方法参数和请求参数进行匹配,并使用Java原生的URL编码将参数转换为URL的查询字符串或者请求体的形式发送给服务端。
在请求过程中,Feign还提供了可扩展的拦截器(Interceptor)机制,允许开发者在请求过程中对请求或响应做一些自定义的操作,例如添加自定义的请求头、对请求进行签名、对响应进行解密等等。
总的来说,Feign底层使用了Java原生的HttpURLConnection实现HTTP请求,并通过拦截器机制提供了可扩展的功能。