这是我参加「第四届青训营 」笔记创作活动的第2天
目前大部分APP在实现时都需要与网络连接完成数据同步,所以网络通信是安卓开发中必不可少的一部分。
在青训营的这节课中讲到了目前几种主要的网络请求方式,对它们有了一定的认识,其中对Retrofit进行了比较详细的了解。
Retrofit:目前Android开发平台最常用的网络请求框架,是对OkHttp的进一步封装
使用方法:
- 引入Retrofit相关的库,即在build.gradle中添加依赖
- 在manifest文件中添加网络权限,否则会报错
E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher - 创建接口,使用发起网络请求,用返回请求拿到的相关内容,如果需要外部调用,添加替换里相对应的内容
- 发起网络请求
在使用时出现的、是网络请求注解,是采用发送网络请求,使用方式是将参数放在路径中,在路径后面跟着请求参数;而用于替代URL地址的缺省值。
注解可以理解为是代码中的标签,同样注解也有生命周期,分为三种:
- SOURCE:在源码中有效,编译时无效的注解,如@Override
- CLASS:在编译class文件时有效,同时要使用注解处理器(APT)
- RUNTIME:在运行期间有效
创建Retrofit实例定义说明:
- 接口类名(IUserInfoService):自定义
- 函数名(getUserName):自定义,说明该接口的作用,可以增加多个不同的函数,一个函数=一个接口
- @GET注解:指定接口的相对路径,采用Get方法发起请求
- @Path注解:需要外部调用时,传入一个uid,替换@GET注解里相对路径的{uid}
- 返回值Call:用ResponseBody可以直接拿到请求的String内容,可以替换成其他如User,自动转为Model类,还需要添加其他的转换器
注意事项: 进行网络请求时需要申请权限,分为动态和静态; 网络请求是一类耗时操作,不可以用主线程来进行