android Retrofit 简单使用

1、定义接口
形式: 注解
call get(@qurey(“limit”) ,String limit);
“返回类型” 方法 请求参数类型
2、创建retofit 对象:
new Retrofit.Builder() //外观模式接口。//自动判断平台接口。返回平台实例有三种,android \java8\ios ,继承了
//platform 的重写了两个方法 defautltCallBackExecutor和defaultCallAdapterFactory方法,
.baseUrl(“地址”) //服务器基本地址。
.addConverterFactory(GsonCoverterFactory); //将返回的数据类型转成对应的实体类型。
.addCallAdapterFactory();
.build();//创建了retorfit对象。
3、创建接口对象
4、进行网络请求
注意
defaultCallBackExecutor 用于执行callback 的线程池,MainThreadExector 获取主线程的LooPer,构造一个主线程handler对象,
调用callback时,会把改请求Post到主线程去执行。
defaultCallAdaterFactory:返回的适配类型时call 类型 ,如果是Rxjava ,可以配置addCAlladapterFactory(RxJavaCallAdapterFactory.create());
配置为Observale.
实例化Retrofit 参数有:callfactory(okhttp客户端)
baseUrl 服务器基本地址。
convertFactories(对象的序列化和反序列化)
adapterFactories(适配类型)
callbackExecutor(回调线程池)
validateEagerly
通过 retrofit.create()调用proxy.newProxyInstance ()动态代理生成接口对象,
经历步骤:Utils.validateServiceInterface(service) 判断是不是接口类型。
eagerlyValidateMethods(service);是否需要提前创建接口serviceMethod;
loadServiceMethod():解析接口。
在使用Observable 遇到了个问题,主要是导包错误的问题,要记得!!!
1、com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true)
类型转换器用ScalarsConverterFactory。
2、Android异常之Retrofit API报错: "Type ‘java.util.Observable’ does not have type parameter”的解决方案
把call 改成 Observable时导包错误:
把call 改成 Rxjava 步骤:
1、添加依赖
2、把注解方法修改成Observable
3、把接口对象获取的call适配器也修改
4、添加gson coverter
5、添加Rxjava apapter
6、异步或者同步请求:
call.subscribeOn(Schedulers.io()) //io处理在子线程。
.observeOn(AndroidSchedulers.mainThread()) //订阅处理在主线程
.subscribe(new Observer() { //订阅处理
}

你可能感兴趣的:(android,第三方框架)