🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Retrofit采用动态代理,创建声明service接口的实现对象。当我们调用service的方法时候会执行InvocationHandler的invoke方法。在这方法中:首先,通过method把它转换成ServiceMethod,该类是对声明方法的解析,可以进一步将设定参数变成Request ;然后,通过serviceMethod, args获取到okHttpCall 对象,实际调用okhttp的网络请求方法就在该类中,并且会使用serviceMethod中的responseConverter对ResponseBody转化;最后,再把okHttpCall进一步封装成声明的返回对象(默认是ExecutorCallbackCall,将原本call的回调转发至UI线程)