底层也是 okhttp
使用方法
//设置baseUrl
Retrofit retrofit = new Retrofit.Builder()
.client(client)//可用来设置okhttp
.baseUrl("http://www.baidu.com")
.build();
RemoteService remoteService = retrofit.create(RemoteService.class);
Call<RspModel<List<GroupCard>>> call = remoteService.groupSearch("群组");
call.enqueue(new Callback<RspModel<List<GroupCard>>>() {
@Override
public void onResponse(Call<RspModel<List<GroupCard>>> call, Response<RspModel<List<GroupCard>>> response) {
}
@Override
public void onFailure(Call<RspModel<List<GroupCard>>> call, Throwable t) {
}
});
public interface RemoteService {
// 群搜索的接口
@GET("group/search/{name}")
Call<RspModel<List<GroupCard>>> groupSearch(@Path(value = "name", encoded = true) String name);
}
源码分析
动态代理
- 首先通过method 把它转化为ServiceMethod;
- 然后,通过serviceMethod,arg获取到okHttpCall对象;
- 最后,再把okHttpCall进一步封装成Call对象
build()源码解析
image.png image.png image.png
网友评论