-
Retrofit网络库介绍
- Retrofit是Square公司基于Restful风格推出的网络框架的封装
- Retrofit与OKHttp的关系
Retrofit是基于OKHttp的网络请求框架的二次封装,其本质仍然是OKHttp
- Retrofit库包结构
不到40个类的对OKHttp的封装
- 与其他网络库对比
-
Retrofit优点
-
Retrofit网络库使用
- 常用参数注解
- JSON解析格式
- 案例
由于Retrofit升级,Gson转换框架需要单独引入
/**
* 登录
*/
public void login(View view){
// 创建Retrofit对象
Retrofit retrofit = new Retrofit.Builder().baseUrl("")
.addConverterFactory(GsonConverterFactory.create())
.build();
// 获取接口对象
UserMgrService userMgrService = retrofit.create(UserMgrService.class);
// 调用我们登录的方法
final Call<UserInfoModel> call = userMgrService.login("jiayuanfa","123456");
// 真正发送请求(同步)
// try {
// new Thread(new Runnable() {
// @Override
// public void run() {
// Response<UserInfoModel> response = null;
// try {
// response = call.execute();
// Log.d("result", ":" + response.body());
// }catch (Exception e) {
// e.printStackTrace();
// }
// }
// }).start();
// }catch (Exception e){
// e.printStackTrace();
// }
// 发送异步请求 他们再内部开启线程池请求数据 主动在请求完毕的时候 通过主线程回调给我们数据
call.enqueue(new Callback<UserInfoModel>() {
@Override
public void onResponse(Call<UserInfoModel> call, Response<UserInfoModel> response) {
Log.d("result", " " + response.body());
}
@Override
public void onFailure(Call<UserInfoModel> call, Throwable t) {
}
});
}
- 总结
- Retrofit是基于OKHttp网络库的高级封装
- 采用注解,网络请求方式更加灵活,扩展性能更好
- RESTFul风格的API优先选择Retrofit