Retrofit是网络请求的一个库,是在okhttp上面有包装了一层,封装了数据转换,get,post等等。我觉得最主要是封装了数据转换吧,什么json数据转换什么的。
大概说个例子吧,下面例子是通过get方法获取我的github账户的所有仓库。
建立数据处理类型
估计是服务器的数据最后都转变成下面这个java类型吧,便于java处理
package com.wenfengtou.retrofitdemo;
/**
* Created by wenfeng on 2017-04-12.
*/
public class RepositoryBean {
String full_name;
String html_url;
int contributions;
@Override
public String toString() {
return full_name + " (" + contributions + ")";
}
}
访问服务器
GitHubService是一个接口,据说可以被Retrofit转化成一个类,然后就能调用里面的方法queryUserRepos了,这个方法就是通过get的方式获取数据,返回一个RepositoryBean的数据。
package com.wenfengtou.retrofitdemo;
/**
* Created by wenfeng on 2017-04-12.
*/
import java.util.List;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Path;
import java.util.List;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface GitHubService {
@GET("users/{users}/repos")
Call<List<RepositoryBean>> queryUserRepos(
@Path("users") String users);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
main函数调用
首先通过retrofit.create获取到gitHubService 服务,然后调用这个服务的方法就ok啦。
GitHubService gitHubService = retrofit.create(GitHubService.class);
Call<List<RepositoryBean>> call = gitHubService.queryUserRepos("wenfengtou");
结果.png
例子传送门
https://github.com/wenfengtou/RetrofitDemo
参考:
Retrofit
网友评论
1.journal文件里面是一些控制信息。例如版本号,文件数,每个文件的操作历史等等都有。
2.每个key文件都是一个图片的字节码。
Retrofit restAdapter = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
请问楼主,这里的addCallAdapterFactory有什么作用呢?
这玩意用到javabean,javabean就是json转换成java类型的数据,具体例子可以看下下面的链接。基本上就是一个jsonobject代表一个java类啦
###Retrofit2.0中如何创建JSON所对应的javaBean
http://blog.csdn.net/my_first_id/article/details/51504735
### 一个让你迅速理解Javabean的实例
http://blog.csdn.net/u012856866/article/details/22323085