9 个 yyds 的 Java 项目,可应对各种私活( 二 )


而 Forest 能帮助我很好地将 HTTP 代码和业务代码解耦开来,请求调用者不必关心 HTTP 相关的细节 。
自动拼接 HTTP 的各种参数
包括 URL、Header、Body 等等参数都能依靠 Java 注解来声明 。这里就举一个高德地图的栗子,来看看 Forest 是如何优雅的声明 HTTP 请求接口的:
/*** 高德地图服务客户端接口*/@BaseRequest(baseURL = "http://ditu.amap.com")public interface Amap {/*** 根据经纬度获取详细地址* @param longitude 经度* @param latitude 纬度* @return 详细地址信息*/@Get("/service/regeo")Map getLocation(@Query("longitude") String longitude, @Query("latitude") String latitude);}......Amap amap = Forest.client(Amap.class);// 发送请求查询经纬度Map locationInfo = amap.getLocation("32.1242832", "56.3290434");自动 JSON 和 XML 转换
其实,我们处理 HTTP 的工作时,除了浪费在组装各种请求参数外,大部分时间都花了在序列化和反序列化各种格式的数据上,如 JSON 和 XML 。
以前用 HttpClient,这些重复的机械性工作都要自己来搞,很是麻烦 。
用 Forest 就方便多了,比如要 POST 一个 JSON 对象,直接挂个 @JSONBody 就好了,就是这么清爽 。


推荐阅读