一个基于接口的Java HTTP客户端

easy-http是一个简洁的Java HTTP客户端,它以注解和接口为基础,提供快速开始、多种特性,如自定义编码解码器、拦截器,支持异步请求,并可切换底层HTTP客户端。
摘要由CSDN通过智能技术生成
easy-http
快速开始

easy-http是一个完全基于注解和接口的http客户端,为简化开发、提高效率而生。

1. 特性
  • 注解简单: 遵循大家的命名习惯,@Body、@Query、@Var等注解见名之意。
  • 无侵入: 接口不需要继承。
  • 多客户端实现: 底层支持多种客户端,默认已实现Java原生URL和HttpClient,也可以自己实现。
  • 支持异步请求。
  • 支持自定义编解码:默认已经内置了JSON编解码(返回参数支持泛型),如需支持xml,可自定义。
  • 支持自定义拦截器:请求前,和请求后的拦截。拦截器可满足大部分业务需求,如:计算请求耗时,动态添加公共请求头,返回错误统一处理等等。
  • 提供spring-boot版本,使用更简单。
  • todo列表:响应式编程、以及Java11的客户端。
2. 安装

Java版本: 最低 8

<dependency>
  <groupId>com.github.firelcw</groupId>
  <artifactId>easy-http</artifactId>
  <version>2.0.1</version>
</dependency>

spring-boot版本移步: easy-http-boot-starter

3. 使用

首先定义一个接口:

public interface BookHttpService {
   
    @Get("/books/{id}")
    ApiResult<Book> getBookById(@Var("id") String id);
}    

这是一个最简单的查询接口,然后通过接口构建执行

BookHttpService bookHttpService = EasyHttp.builder()
    								.url("127.0.0.1:8888")
    								.build(BookHttpService.class);
ApiResult<Book> bookRet = bookHttpService.getBookById("166895");
System.out.println(bookRet.getData().getName());

像类似@GET的注解还有@Post、@Put、@Delete,@Post、@Put可指定content-type,默认是application/json。

4.方法参数注解
  • @var

    路径变量注解,用于替换路径上的变量,路径变量只能是简单参数类型,八大基本类型加String。

    @Get("/books/{id}")
    ApiResult<Book> getBookById(@Var("id") String id);
    @Get(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值