Retrofit是一个安卓端开源网络请求库,目前依赖于okhttp:
http://square.github.io/retrofit/
并提供了多种数据转换工厂和RxJava适配工厂接口。例如:
compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1'
使用retrofit访问接口:
void test0() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .build(); GithubService service = retrofit.create(GithubService.class); service.getContributors("square", "retrofit").enqueue( new Callback<List<ContributorBean>>() { @Override public void onResponse(Call<List<ContributorBean>> call , Response<List<ContributorBean>> response) { for (ContributorBean con : response.body()) { Log.e("TAG", con.login); } } @Override public void onFailure(Call<List<ContributorBean>> call , Throwable t) { t.printStackTrace(); } }); } interface GithubService { //https://api.github.com/repos/{owner}/{repo}/contributors @GET("/repos/{owner}/{repo}/contributors") Call<List<ContributorBean>> getContributors( @Path("owner") String owner, @Path("repo") String repo); } class ContributorBean { String login; String type; }
演示了一个带参Get请求,使用Gson做json数据转换。
若要加入RxJava来做事件处理:
void test0() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); GithubService service = retrofit.create(GithubService.class); service.getContributors("square", "retrofit") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<List<ContributorBean>>() { @Override public void call(List<ContributorBean> contributorBeans) { for (ContributorBean con : contributorBeans) { Log.e("TAG", con.login); } } }); } interface GithubService { //https://api.github.com/repos/{owner}/{repo}/contributors @GET("/repos/{owner}/{repo}/contributors") Observable<List<ContributorBean>> getContributors( @Path("owner") String owner, @Path("repo") String repo); } class ContributorBean { String login; String type; }
产生了同样的效果。
使用flatMap实现链式调用:访问接口1->接口1返回后->访问接口2->接口2返回
void test0() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); final GithubService service = retrofit.create(GithubService.class); service.getContributors("square", "retrofit") .flatMap(new Func1<List<ContributorBean>, Observable<List<EventBean>>>() { @Override public Observable<List<EventBean>> call(List<ContributorBean> contributorBeans) { for (ContributorBean con : contributorBeans) { Log.e("TAG", con.login); } return service.getEvents(); } }).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<List<EventBean>>() { @Override public void call(List<EventBean> eventBeans) { for (EventBean eve : eventBeans) { Log.e("TAG", eve.created_at); } } }); } interface GithubService { //https://api.github.com/repos/{owner}/{repo}/contributors @GET("/repos/{owner}/{repo}/contributors") Observable<List<ContributorBean>> getContributors( @Path("owner") String owner, @Path("repo") String repo); //https://api.github.com/events @GET("events") Observable<List<EventBean>> getEvents(); } class EventBean { String id; String type; String created_at; } class ContributorBean { String login; String type; }
结束
相关推荐
2. **Retrofit**:由Square公司开发的网络请求库,简化了网络API的调用。 3. **Dagger**:Google支持的依赖注入框架,用于减少代码间的耦合。 4. **Butter Knife**:视图注入库,简化了UI组件的绑定操作。 5. ** ...
笔记可能涵盖HTTP请求库如OkHttp的使用,JSON解析库如Gson或Jackson的应用,以及如何处理异步任务和线程管理,比如使用AsyncTask或Retrofit。 此外,权限管理在Android系统中至关重要,尤其是从Android 6.0(API...
5. **网络通信**:Android应用常常需要与服务器交互,因此需要掌握HTTP/HTTPS请求,JSON解析,以及使用Retrofit、Volley等网络库。 6. **多线程**:Android主线程不能执行耗时操作,所以需要使用AsyncTask、...
8. **网络编程**:在Android应用中,网络请求通常使用HttpURLConnection、OkHttp或Retrofit等库来实现。掌握异步请求、JSON解析和网络权限管理是进行网络通信的基础。 9. **Service与BroadcastReceiver**:Service...
学习如何使用HttpURLConnection、OkHttp或者Retrofit等库进行网络请求,以及处理JSON或XML数据是必备技能。 八、数据库与存储 SQLite是Android内置的轻量级数据库,用于本地数据存储。理解SQL语句和如何操作SQLite...
6. **网络编程**:HTTP请求与响应,使用HttpURLConnection或OkHttp进行网络请求,理解JSON格式的数据解析,以及使用Retrofit和Volley等网络库进行更高效的数据交互。 7. **多线程**:理解Android主线程(UI线程)与...
8. **网络编程**:涉及HTTP请求库的使用(如OkHttp、Retrofit),以及WebSocket、FTP等网络协议的应用。 9. **异步处理**:包括线程和Handler机制,以及使用AsyncTask、IntentService进行异步操作。 10. **组件间...
14. **第三方库集成**:许多优秀的第三方库如Glide(图片加载)、Retrofit(网络请求)、Butter Knife(视图绑定)等,可以极大地提高开发效率。 15. **单元测试与自动化测试**:学习JUnit、Espresso等工具进行应用...
通过Gradle,开发者可以轻松引入第三方库,如Glide(图片加载库)、Retrofit(网络请求库)和Butter Knife(视图绑定库)等,极大地提高了开发效率。 **测试和性能优化** Android Studio支持单元测试、仪器测试以及...
另外,Android的异步网络调用框架,如Retrofit和Volley,也会被提及,它们可以简化网络请求的处理。 最后,你将学习到Android的测试和调试技巧,包括单元测试、UI测试和Monkey测试,这些都是确保应用质量的重要步骤...
这涉及到网络请求、JSON解析、HTTPS安全通信等技术,例如使用OkHttp或Retrofit库进行网络请求。 4. **Music_Test**: 这个文件名暗示了一个关于音乐播放的功能测试。在Android中,可以使用MediaPlayer类来播放音频...
Android提供了HttpURLConnection和OkHttp等库来实现网络请求,同时介绍了AsyncTask和Retrofit等工具用于后台数据交互。 `android_丰富你的程序.docx`可能讨论了如何通过添加额外功能和组件来提升应用的用户体验,...
此外,Volley和Retrofit是常见的网络请求库,提供更便捷的异步处理和数据转换。近年来,随着WebSocket的普及,Android应用也能实现实时双向通信。 多媒体处理包括音频、视频和图像的处理。MediaStore API可用于访问...
- Volley和Retrofit:更高级的网络请求库,简化API调用。 - AsyncTask和Handler:处理UI线程与后台线程的交互,避免ANR(Application Not Responding)。 7. **权限管理** - Android 6.0(API级别23)以后,运行...
- Android社区有许多优秀的第三方库,如ButterKnife(视图绑定)、Dagger(依赖注入)、Retrofit(网络请求)、RxJava(异步处理)等,这些可以加速开发进程。 - 组件化开发有助于代码结构清晰,提高代码复用性和...
9. **网络编程**:Android应用可能需要访问网络资源,理解HTTP协议、使用OkHttp或Retrofit库进行网络请求,以及处理异步任务是必要的。 10. **BroadcastReceiver**:广播接收者用于监听系统或自定义广播事件,实现...
学习如何使用HttpURLConnection、OkHttp、Retrofit等库进行网络请求,以及处理JSON数据,是现代Android开发的必备技能。 九、权限管理 从Android 6.0(API级别23)开始,系统引入了运行时权限管理。开发者需要在...