Retrofit2.0使用详解
综述
retrofit是由square公司开发的。square在github上发布了很多优秀的Android开源项目。更多square上的开源项目我们可以去square的GitHub进行查看。这次就来介绍一下retrofit的一些基本用法。retrofit是REST安卓客户端请求库。使用retrofit可以进行GET,POST,PUT,DELETE等请求方式。下面就来看一下retrofit的基本用法。
Retrofit2.0使用方法
之前有1.0的版本这里就不在说了,retrofit2.0网络部分依赖于OkHttp,且不能够替换了在其内部的配置文件中已经引用了此框架不用在显示的导入了。
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
okhttp3这里就不再介绍了,最近很火的一个网络框架
不过要记着在配置文件中写入网络访问的权限哦,要不然报个错误会报的很隐晦。
<uses-permission android:name="android.permission.INTERNET"/>
Hello Word
1.在Gradle中添加依赖
在这里我们最好查看一下retrofit的官网添加最新依赖,下面的版本是截止发布前最新版本。
compile 'com.squareup.retrofit2:retrofit:2.0.1'
2.创建API接口
在retrofit中通过一个Java接口作为http请求的api接口。
public interface GitHubApi {
@GET("repos/{owner}/{repo}/contributors")
Call<ResponseBody> contributorsBySimpleGetCall(@Path("owner") String owner, @Path("repo") String repo);
}
3.创建retrofit实例
在这里baseUrl是在创建retrofit实例的时候定义的,我们也可以在API接口中定义完整的url。在这里建议在创建baseUrl中以”/”结尾,在API中不以”/”开头和结尾。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build();
使用RxJava.Observable取代AsyncTask和AsyncTaskLoader