zoukankan      html  css  js  c++  java
  • Android实战——Retrofit2的使用和封装

    使用项目的原话:Android和Java中类型安全的HTTP客户端
    项目地址:https://github.com/square/retrofit

    这里Retrofit还需要导入它的Gson依赖库,因为返回的数据需要Gson来处理

    1、Get请求
    2、Post请求
    3、单、多文件上传

    演示提供的接口(该接口不支持post方式)

    get请求(支持普通请求)

    get请求(支持键值对参数)

    Post请求(支持键值对参数)

    Post请求(支持获取返回的字符串)

    Post请求(上传文件和参数)

    Retrofit的请求是以REST请求方式发送请求的,所以工具的封装需要做两件事

    • 对REST请求的API进行封装
    • Retrofit自身的封装

    由于我们接口返回的JSON数据如下

    所以这里需要对我们需要解析的数据进行Bean对象的封装

    Retrofit使用注解的方式来声明GET请求、POST请求、请求参数、请求头等进行的网络访问,下面是各个注解的表示的意思

    • Get请求相关

      • @Get:发送Get请求
      • @Query:Get请求参数
      • @QueryMap:Get请求Map参数
    • Post请求相关

      • @Post:发送Post请求
      • @FormUrlEncoded:采用表单的方式,一般与@Post共用
      • @Field:Post请求参数
      • @FieldMap:Post请求Map参数
    • Header请求相关

      • @Headers:发送Header信息
      • @Header:Header信息参数
      • @HeaderMap:Header信息的Map参数
    • Path请求相关

    理解完意思之后,编写REST的API,其实就是请求接口,具体看下面的代码

    Retrofit和okHttp一样,采用构造者模式创建,采用单例模式防止使用多个对象

    上面代码做了三件事

    • 绑定请求URL
    • 采用GSON来处理返回的JSON数据
    • 创建并返回REST请求API接口iServer

    下面就可以直接使用工具类拿到这个iServer,调用提供的接口方法

    API接口的创建,比如说注册功能,需要上传两张身份证照片,这是我自己服务器的接口

    • @PartMap:表示参数的上传
    • @Part:表示文件列表

    创建两个方法辅助PartMap和Part的创建

    到这里,你就可以回过头去看下文章开头的演示部分,那里就是RetrofitUtils的使用

    由于文件上传是我在做项目的时候用上的,工具类缺少文件上传的内容,大家可以自行去拷贝代码

  • 相关阅读:
    nvm安装及使用(windon/mac)
    JVM学习笔记
    Java多线程
    OkHttpClient调优案例
    Java各版本新增特性, Since Java 8
    Linux下MySQL数据库的备份与恢复
    算法和数据结构学习笔记
    联想台式机安装网卡驱动指南
    解决「现有新的ios更新可用,请从ios14 beta 版更新」问题
    linux 命令英文全称(转帖)
  • 原文地址:https://www.cnblogs.com/zhanglixina/p/9603735.html
Copyright © 2011-2022 走看看