HttpClient
HttpClient是一个基于Java的Http客户端库
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://www.example.com");
try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
// 处理响应
int statusCode = response.getStatusLine().getStatusCode();
HttpEntity entity = response.getEntity();
String responseBody = EntityUtils.toString(entity);
// ...
}
RestTempale
RestTemplate是Spring框架提供的一种简单方便的HTTP访问工具,集成了HttpClient,以下是基本的使用方法:
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject("http://www.example.com", String.class);
Feign
feign是一个Java HTTP客户端,可以使用注解来定义请求接口,将服务端的REST API转化为Java接口。Feign提供了负载均衡和容错能力。
使用步骤:
-
导入依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies> -
配置Feign客户端
在SpringBoot项目中可以使用@EnableFeignClients注解开启,通过配置类来开启Feign的日志记录
@Configuration @EnableFeignClients(basePackages = "xxx.xxx.xxx.api") // 指定扫描的Feign客户端接口的包路径 public class FeignClientConfig { @Bean Logger.Level feignLoggerLevel() { return Logger.Level.FULL; } } -
定义Feign接口
使用注解@FeignClient定义一个Feign客户端,通过value属性指定客户端的名称,并指定服务的地址,如何使用@GetMapping等注解定义请求接口
@FeignClient(value = "service-name", url = "http://localhost:8081") // 客户端名称和目标服务地址 public interface OrderApiClient { @GetMapping("/orders/{id}") Order getOrderById(@PathVariable("id") Long id); } -
调用Feign接口
通过自动注入定义的Feign客户端接口,调用其中的方法,Feign会自动将请求转发到对于的服务地址
@RestController public class OrderController { @Autowired private OrderApiClient orderApiClient; @GetMapping("/orders/{id}") public Order getOrderById(@PathVariable Long id) { return orderApiClient.getOrderById(id); } }
文章介绍了Java中用于HTTP请求的三种库:HttpClient的基本使用,包括创建客户端和处理响应;Spring框架的RestTemplate,它简化了HTTP访问;以及Feign,一个支持注解的HTTP客户端,提供负载均衡和容错功能,通过定义接口实现服务调用。
1341

被折叠的 条评论
为什么被折叠?



