要命的Retrofic框架

作为一个第一次接触注解这个知识的小鸟来说,这个框架真是噩梦啊,只能一点点来了!

第一步引包

跟之前几个框架一样,因为用的编辑器是Android studio,引包还真不是一般的方便啊

    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
在包的依赖里加上这么两句话就行了

因为不确定写的的对不对,附上官网网址一枚,看不懂的可以自己去查官网
第二步写接口

因为这个框架应用场景是那种对一个网址可以传多样参数的,比如https://api.github.com这个接口除了可以传Guolei1130这个参数,还可以传owner等等,如果每一个次网络请求都需要像OKhttp每一次都要写一遍url,那就太麻烦了,这个的操作则是利用注解和接口的反射来进行(PS:说专业名词就是感觉叼,然而我也不懂为什么可以这样做,只明白这样做可以达到效果,知其然而不知其所以然)。

<span style="white-space:pre">	</span>public interface GitHubService {
    
    <span style="white-space:pre">		</span>@GET("/users/{user}")//这就是利用注解在你用GET方式请求的时候会自动给你补全一部分URL路径,花括号里面的有user点类似变量对应下面参数
   <span style="white-space:pre">	</span> <span style="white-space:pre">	</span>Call<gitmodel> getFeed(@Path("user") String  user);//这个注解的大概理解为传过来的的String参数会添加到上面的花括号里
	}
看注释解释,单看一个接口可能看不懂,慢慢来,接下去看

第三步,写JSON对象

这就是这次框架为什么要引两个依赖的原因了,需要用到GSON这个包,这时候还要提一个插件了,GsonFormat这个框架可以根据格式好的JSON数据直接写出model对象来,超方便的啊,因为只是一个bean类就不打上来了。

第四步,写请求

<span style="font-size:12px;">	  Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://api.github.com")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        GitHubService service = retrofit.create(GitHubService.class);
        Call<gitmodel> model = service.getFeed("Guolei1130");
        model.enqueue(new Callback<gitmodel>() {
            @Override
            public void onResponse(Response<gitmodel> response, Retrofit retrofit) {
                Log.e("tag++++++++++++++++++", "onResponse: " + response.body().getLogin());
            }

            @Override
            public void onFailure(Throwable t) {
                Log.e("tag++++++++++++++++++", "onFailure: " + t.getMessage());
            }
        });</span>
<span style="white-space:pre">	</span>model.clone();
先创建Retrofit对象,然后跟上生成器Builder(),写好相关的参数,请求的接口baseUrl("路径"),addConverterFactory(GsonConverterFactory.create())将创建了Gson对象添加进响应里,用来接收请求返回的内容。请求创建好后传到接口里的注解GET上,Call的意思就是拨打,也就是执行请求,把传入的参数添加到接口的方法,执行注解,异步执行方法,剩下的就和OKhttp一样了,因为这个框架不能自动关闭请求,所以记得写上clone()。这就是入门Retrofit框架。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章