前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Retrofit笔记 | 基本使用步骤

Retrofit笔记 | 基本使用步骤

作者头像
凌川江雪
发布2019-06-11 19:20:26
8670
发布2019-06-11 19:20:26
举报
文章被收录于专栏:李蔚蓬的专栏李蔚蓬的专栏

Retrofit使用基本步骤

1. 添加好依赖
代码语言:javascript
复制
    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添加权限
代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET"/>
2. 创建接口,设置请求类型与参数
  • 新建UserInfoModel类(一个根据服务端数据的格式,如json数据的格式字段,而设计的一个Java类,类中的成员字段对应着服务端数据字段 举个例子: 如服务器端数据格式如下:

则对应设计的UserInfoModel类:

  • 以及UserMgrService接口, 常用参数注解:** @GET、@POST:确定请求方式; @Path:请求URL的字符替代; @Query:要传递的参数; @QueryMap:包含多个@Query注解参数; @Body:添加实体类对象 @FormUrlEncoded:URL编码; 示例:
代码语言:javascript
复制
@GET("login")
public Call<UserInfoModel> login(@Query("username") String username,@Query("pwd") String pwd);
3. 创建Retrofit对象,设置数据解释器
代码语言:javascript
复制
        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. 处理返回数据
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Retrofit使用基本步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档