retrofit与rx_java结合使用基础篇之一

来源:互联网 发布:关节机器人编程 编辑:程序博客网 时间:2024/06/09 18:55

1、导入五个依赖,前面两个是retrofit的,中间那个是retrofit与rxjava结合使用需要的Adapter,后面两个是rx_java需要的。

compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
compile 'io.reactivex:rxandroid:1.1.0'compile 'io.reactivex:rxjava:1.1.0'

2、需要的接口:

public interface GitHubService {    @GET("/repos/{owner}/{repo}/contributors")    Observable<List<Contributor>> GetGitHubData(@Path("owner") String owner, @Path("repo") String repo);}

3、实体类:

public class Contributor {    @SerializedName("login")    String login;    @SerializedName("id")    int id;    @SerializedName("avatar_url")    String avatar_url;    @SerializedName("gravatar_id")    String gravatar_id;    @SerializedName("url")    String url;    @SerializedName("html_url")    String html_url;    @SerializedName("followers_url")    String followers_url;    @SerializedName("following_url")    String following_url;    @SerializedName("gists_url")    String gists_url;    @SerializedName("starred_url")    String starred_url;    @SerializedName("subscriptions_url")    String subscriptions_url;    @SerializedName("organizations_url")    String organizations_url;    @SerializedName("repos_url")    String repos_url;    @SerializedName("events_url")    String events_url;    @SerializedName("received_events_url")    String received_events_url;    @SerializedName("type")    String type;    @SerializedName("site_admin")    String site_admin;    @SerializedName("contributions")    int contributions;}


4、MainActivity的调用代码:

public class MainActivity extends AppCompatActivity {    private static final String TAG = "gitHub";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        DownLoadData();    }    private void DownLoadData() {        new Thread() {            @Override            public void run() {                Retrofit retrofit = new Retrofit.Builder()                        .baseUrl("https://api.github.com")                        .addConverterFactory(GsonConverterFactory.create())                        .build();                GitHubService gitHubService = retrofit.create(GitHubService.class);                Call<List<Contributor>> call = gitHubService.contributrors("square", "retrofit");                try {                    List<Contributor> body = call.execute().body();                    for (Contributor contributor : body) {                        Log.i(TAG, contributor.login + "   " + contributor.id);                    }                } catch (IOException e) {                    e.printStackTrace();                }            }        }.start();    }}


0 0
原创粉丝点击