美文网首页
哇券技术点——请求封装

哇券技术点——请求封装

作者: ozil_oo | 来源:发表于2021-05-28 16:52 被阅读0次

    在自定义application中执行了init()

    OkHttp3

    基本使用

    自定义配置

    拦截器

    缓存和cookie

    使用流程

    image.png

    Retrofit2

    参考:https://www.jianshu.com/p/308f3c54abdd

    基本使用

    1.根据接口文档创建接口,注解方式来定义请求类型、参数名、请求路径
    2.创建retrofit对象,通过retrofit.create()可以创建一个此接口的实现
    3.通过retrofit.create()产生的实现调用接口中对应的方法即可
    4.返回一个Call对象,Call对象的使用方法和OkHttp一样

    常用注解

    请求方式

    @Post
    @Get

    Body编码方式

    @FormUrlEncode
    @Multipart
    @Streaming

    参数注解

    @Query @QueryMap
    @Field @FieldMap
    @Body
    @Path @PathMap

    其他注解

    @Header

    Converter反序列化

    默认的返回值都是Call<ResponseBody>
    拿到的数据都是JSON字符串,实际使用的是JAVA Bean
    这就需要转化

    适配器

    retrofit返回类型必须是Call,这样对于请求嵌套会造成回调地狱,Call通过addCallAdapterFactory+RxJava转换成Observable
    可以简洁优雅的实现异步的链式调用

    回到哇券

    初始化

    初始化创建了一个retrofit对象,注入了自定义的OkHttpClient,这个OkHttpClient主要添加了两个拦截器HttpLoggingInterceptorHttpLoggingInterceptor,前者主要负责请求日志(存在哪?记哪些?),后者是业务相关,比如签名
    这个retrofit对象添加了RxJava2CallAdapterFactory适配器和GsonConverterFactory转换器

    retrofit.create(Request.class)
    这里的Request是一个接口,里面有所有请求方法

    疑问1:getInstance为啥要用单例模式
    疑问2:getRequest为啥要用单例模式
    疑问3:buildGson中的Adapt有什么用

    相关文章

      网友评论

          本文标题:哇券技术点——请求封装

          本文链接:https://www.haomeiwen.com/subject/ombrsltx.html