Retrofit笔记 | 基本使用步骤

简介: Retrofit笔记 | 基本使用步骤

Retrofit使用基本步骤

1. 添加好依赖

    implementation 'com.squareup.okhttp3:okhttp:3.4.1'
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

1.2添加权限

<uses-permission android:name="android.permission.INTERNET"/>

2. 创建接口,设置请求类型与参数

  • 新建UserInfoModel类(一个根据服务端数据的格式,如json数据的格式字段,而设计的一个Java类,类中的成员字段对应着服务端数据字段

举个例子:
如服务器端数据格式如下:
则对应设计的UserInfoModel类:

  • 以及UserMgrService接口,

常用参数注解:**
@GET、@POST:确定请求方式;
@Path:请求URL的字符替代;
@Query:要传递的参数;
@QueryMap:包含多个@Query注解参数;
@Body:添加实体类对象
@FormUrlEncoded:URL编码;
示例:

@GET("login")
public Call<UserInfoModel> login(@Query("username") String username,@Query("pwd") String pwd);

3. 创建Retrofit对象,设置数据解释器

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

4. 生成接口对象

UserMgrService service = retrofit.create(UserMgrService.class);

5. 调用(刚刚在接口中定义过的)接口方法,返回Call(数据类)对象

Call<UserInfoModel> call = service.login("zhangsan","123456");

6. 发送请求(同步、异步)

  • **只有发送了请求,以上至第五步才能真正获得数据;

同步:调用Call对象的execute(),返回结果的响应体;
异步:调用Call对象的enqueue(),参数是一个回调;**

  • **同步指程序调用请求方法后,

就一直等着返回数据,不干别的事情,
可能长时间阻塞线程;

异步指程序调用请求方法后,
直接干别的事情,不干等着数据返回了,
而是设置好回调,数据来时通过回调传讯,
不阻塞线程;**

  • **同步调用需要手动做一个防阻塞处理(设置等待响应时间,超过则认定无响应,阻塞线程);

异步调用则不需要考虑这个问题;**

7. 处理返回数据

相关文章
|
7月前
最新jsonwebtoken-jjwt 0.12.3 基本使用
最新jsonwebtoken-jjwt 0.12.3 基本使用
604 0
|
4月前
iouring基本使用
iouring基本使用
58 0
|
4月前
|
网络安全 Perl
Nikto——基本使用
Nikto——基本使用
61 0
|
6月前
|
XML Java 数据格式
Acitiviti7基本使用- 2、Servcie服务接口介绍
Acitiviti7基本使用- 2、Servcie服务接口介绍
|
7月前
|
存储 NoSQL 定位技术
RedisGEO的基本使用
对GEO的基本介绍
|
存储 JSON 监控
01-Httprunner-简介、安装及基本使用
01-Httprunner-简介、安装及基本使用
|
Java 程序员
Rxjava实战笔记 | Rxjava的基本使用解析(同步结合示例)
Rxjava实战笔记 | Rxjava的基本使用解析(同步结合示例)
|
JSON API 开发者
Retrofit笔记 | 简析官方API文档(结合示例代码)
Retrofit笔记 | 简析官方API文档(结合示例代码)
CodeBlock 基本使用
基本介绍 代码块又称为初始化块,属于类中的成员【即是类的一部分,类似于方法,讲逻辑语句封装在方法体中,通过{}包围起来】 和方法不同,没有方法名,没有返回值,没有参数,只有方法体,而且不用通过对象或类显式调用,而是加载类时或创建对象时隐式调用。
152 0
|
Go
基本使用
基本使用
85 0