栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Retrofit使用和理解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Retrofit使用和理解

使用

1.接口方法

public interface GitHubService {

    @GET("/users/{user}/repos")
    Call> reposForUser(@Path("user") String user);
}
    返回的数据类型
public class GitHubRepo {

    private int id;
    private String name;

    public GitHubRepo() {

    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

    调用
		OkHttpClient.Builder httpClient = new OkHttpClient.Builder();

        Retrofit.Builder builder = new Retrofit.Builder()
                .baseUrl(API_base_URL)
                .addConverterFactory(GsonConverterFactory.create());

        Retrofit retrofit  = builder.client(httpClient.build()).build();

        GitHubService service = retrofit.create(GitHubService.class);

        final Call> call = service.reposForUser("octocat");

        call.enqueue(new Callback>() {
            @Override
            public void onResponse(Call> call, Response> response) {
                List list = response.body();
                for (GitHubRepo gitHubRepo : list) {
                    Log.e("test", gitHubRepo.getName());
                }
            }

            @Override
            public void onFailure(Call> call, Throwable t) {

            }
        });
理解

Retrofit是什么?
是一个辅助用户进行网络请求的框架,主要帮助用户通过接口方法定义以及注解的方式自动构造请求,
并在网络请求后将结果json转化为用户需要的数据结构类型.
内部会使用okHttp进行具体的网络请求.

Retrofit如何做到的?
主要是通过动态代理的方式,通过构造的代理类中InvocationHandler的invoke方法,将对接口的调用转化为一次http请求.使用okHttp进行网络请求后,
解析resonse并转化成需要的结果类型返回.

参考
    Retrofit — Getting Started and Creating an Android Client
    https://futurestud.io/tutorials/retrofit-getting-started-and-android-client拆轮子系列:拆 Retrofit
    https://blog.piasy.com/2016/06/25/Understand-Retrofit/index.html公共技术点之 Java 动态代理
    https://a.codekk.com/detail/Android/Caij/%E5%85%AC%E5%85%B1%E6%8A%80%E6%9C%AF%E7%82%B9%E4%B9%8B%20Java%20%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86Retrofit分析-漂亮的解耦套路
    https://www.jianshu.com/p/45cb536be2f4如何进行网络框架的学习和设计
    https://www.infoq.cn/article/27hrz4qgcnxhuk7naume
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759405.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号