Retrofit记录
发送网络请求(异步):
1 | //发送网络请求(异步) |
发送网络请求(同步):
1 | //发送网络请求(同步) |
注解实现网络请求方法
以 IGearsLocatorApi 中下面这段代码为例:
1 | //V3网络定位请求(明文) |
请求体作为参数传入,这里请求的类型为 POST,Headers 注解内的部分是请求头
这里返回了 Call 对象为执行发起网络请求的实际对象
创建 Retrofit 实例对象:
1 | Retrofit retrofit = new Retrofit.Builder() |
过程是用 Retorfit 的 Builder 对象进行 build ,得到 Retrofit 对象
具体在项目里的构造在 MtRetrofitFactory 下面完成
创建网络请求接口实例:
1 | // 创建 网络请求接口 的实例 |
在项目里的网络接口实例是 IGearsLocatorApi ,具体使用起来有一点差别
总结一下执行的过程:
先用 Retorfit 的 Builder 对象进行 build ,得到 Retrofit 对象,然后用 Retrofit 对象创建网络接口请求对象 Request(service)(IGearsLocatorApi),之后通过网络接口的方法获取到执行网络请求的实体 Call 对象,调用 call.execute() 会返回响应结果
- 对于 Retrofit 的获取是通过 MtRetrofitFactory 的 getRetrofitByURL(String url) 方法实现的,在这个方法下添加了拦截器以在 execute 的时候向请求头添加用户信息
- 后在 GearsLocator 下调用 this.mGearsLocatorApi = retrofit.create(IGearsLocatorApi.class) 来获取网络请求接口对象
- mGearsLocatorApi 下有相关的请求方法
- 在 GearsController 类下会通过传进请求体调用 mGearsLocatorApi 的方法返回 Call 对象执行 execute ,返回 Response 响应