【Demo见真章】将安卓的Retrofit移植到鸿蒙系统上,在鸿蒙系统上实现一套网络请求框架

本文介绍了将安卓的Retrofit移植到鸿蒙系统上的工作,名为‘蒹葭’的网络请求框架。蒹葭不仅具有Retrofit的功能,还支持动态替换域名和直接添加拦截器。详细讲解了各个注解的使用方法,并提供了源码链接,后续计划增加文件上传、拦截器支持等特性。
摘要由CSDN通过智能技术生成

一、亮点介绍:

自从鸿蒙手机版发布以来,我就一直在做移植的工作,将安卓代码移植到鸿蒙系统上。Retrofit是安卓系统上一款优秀的网络请求框架,鸿蒙系统并没有类似的网络请求框架。于是,我决定实现一套鸿蒙版的Retrofit。

蒹葭(JianJia)是一款鸿蒙系统上的网络请求框架,其实就是将安卓的Retrofit移植到鸿蒙系统上,我将鸿蒙版的Retrofit命名为蒹葭(JianJia)。蒹葭不仅能实现Retrofit的功能,还会提供一些Retrofit没有的功能。Retrofit不支持动态替换域名,国内的应用一般都是有多个域名的,蒹葭支持动态替换域名。Retrofit并不能够直接添加拦截器,只能通过okhttp来添加拦截器,蒹葭会支持添加拦截器。

二、Demo编译及效果呈现如下:

Demo演示视频戳此

注:文档附件在最下面

三、源码:

https://gitee.com/zhongte/JianJia

要想读懂源码,需要具备以下技能。

熟悉okhttp的常见用法

熟悉面向接口编程、反射、泛型、注解

熟悉构造者模式、适配器模式、工厂模式、策略模式、静态代理、动态代理、责任链模式等设计模式

四、用法,用法跟Retrofit一样

蒹葭提供了一系列的注解,在进行网络请求的时候,就需要用到这些注解。

4.1 GET注解

创建接口,在方法里面使用GET注解,GET注解用于标识这是一个GET请求,方法的返回值是Call对象,泛型是ResponseBody,其实泛型也可以是具体的实体对象,这个后面再说。蒹葭如何完成网络请求?使用构造者模式创建jianjia对象,baseUrl就是域名,在创建jianjia对象的时候就必须指定域名。调用create方法来生成接口的实例,调用wan.getBanner().enqueue来执行网络请求,请求成功就会回调onResponse方法,请求失败就会回调onFailure方法

public interface Wan {
   

    @GET("banner/json")
    Call<ResponseBody> getBanner();
}

JianJia jianJia = new JianJia.Builder()
        .baseUrl("https://www.wanandroid.com")
        .build();

Wan wan = jianJia.create(Wan.class);
wan.getBanner().enqueue(new Callback<ResponseBody>() {
   
    @Override
    public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
   
        try {
   
            String json = response.body().string();
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }

    @Override
    public void onFailure(Call<ResponseBody> call, Throwable t) {
   
        LogUtils.info("yunfei"
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值