欢迎转载:请标明出处Retrofit的简单实用

今天开始我的博客第一篇,之所以决定写博客是为了记录每天自己的学习情况,同时分享自己在Android开发过程的点滴经验,希望能够给有需要的朋友提供帮助,闲话不多说,今天给大家讲讲Retrofit。
Retrofit 是目前android 进行http网络请求中好用的框架之一,可能大家之前对volley 、okHttp以及android-async-http有过相关的了解,我不敢说Retrofit 是这几个框架中的佼佼者 ,我觉得大家觉得那个好用就用哪个,没必要纠结。
Retrofit的详细使用见官网的详细介绍
Retrofit的使用步骤:
1.需要知道我们接口的访问方法,通常有GET、POST 、PUT等
2.需要确定我们接口是否需要访问时,是否需要携带参数
3.在上面二者确定好之后,我们需要导入对Retrofit的依赖,在Gradle中导入一下依赖:

dependencies {    /*由于Retrofit 的访问网络还是基于okHttp,所以我们需要导入这个依赖*/    compile 'com.squareup.okhttp3:okhttp:3.2.0'/*GSON转换器的使用*/    compile 'com.squareup.retrofit2:converter-gson:2.0.0'    compile 'com.squareup.retrofit2:retrofit:2.0.0'}

如果有读者不知道GSON是什么,这里我简单给到家介绍一下,GSON是将JSON解析成POJO的Java库。GSON也可以将POJO解析成JSON,Retrofit使用GSON解析JSON数
4.定义接口

public interface MyRetrofit {    @GET("controller/methord")    Call  upLoad(                                 @Query("phone") String number,                                 @Query("pwd")  String  pwd    );}

由于Retorfit 中很多都是通过注解形式来引用的,上面@GET就是设置请求方法为GET,本案例的接口我就不详细(因为这是公司提供的接口),不过我可以把大致的形式给大家提供出来,http://域名/path/index/ 后面可以跟上我们经常使用如登陆接口,通过用户名和密码:phone=账户名&pwd=密码;这个接口大致就这样,看到这大家想必就有一点头绪了问什么我会在@Query后面跟phone和pwd ,@Query就是需要我们把登陆接口的参数放进来,另外需要强调的是大家不要纠结 @GET(“controller/{methord}”)这些怎么填,其实这里填入的是请求的url的path部分。upLoad这个是我自定义的方法,至于读者想怎么定义就自己定义就好了。可能看到这的读者有一些不理解我 代码中贴出来MyRetrofitBean是个什么东东,大家不要觉得很什么神秘,下面我带大家来揭秘,我们用Retrofit就是为了进行http方法获取放回JSON 从而来判断自己是否请求成功或者得到想要的数据,那么这些数据我们需要创建一个类来保存,因此这个类就这么来的。不过这里不需要大家自己创造,下面我给大家讲讲怎么让我们的Android studio帮我们自动创建,我们需要下载一个插件GSONFromat(是不是觉得这个GSON有点眼熟了,这就是上面我和大家提到过的),安装好插件后只需要重启一下我们的Studio 即可(如果有小白不知道怎么安装此插件,可以百度一下,这里就不多介绍了)。
好了我们的工具重启完毕之后,我们需要给该插件配置快捷键,这里也不详细介绍了,新建一个类在当前类名下通过快捷键把我们的插件打开,会出现一下弹框
Retrofit的简单使用_第1张图片
在这里面将接口返回的数据格式在这里粘贴一下,不要告诉我你不知数据格式是怎样的哈,去问给你提供接口的人,他会老老实实给你的,然后粘贴到这里后,点击OK接口,你会发现生成了很多东西,这就是我们想要的。
5.注册网络访问

Retrofit mRetrofit=new Retrofit.Builder()     .baseUrl(这里填上你需要的接口)     .addConverterFactory(GsonConverterFactory.create())     .build();

6.创建自定义接口实例

 MyRetrofit  myRetrofit=mRetrofit.create(MyRetrofit.class);

7.调用自定义访问网络方法

 Call call=myRetrofit.upLoad(用户名,密码);

8.进行网络请求

call.enqueue(new Callback() {            @Override            public void onResponse(Call call, retrofit2.Response response) {              /*这里进行网络请求成功操作 MyRetrofitBean 的getCode就是之前我们通过GSONFromat创建好的,可以通过判断这个值是否为接口定义的成功返回code*/              Log.d("",response.body().getCode()+response.body().getMsg()+"");            }            @Override            public void onFailure(Call call, Throwable t) {            }        });

至此Retrofit的初步试用在这里我讲完了,希望能给你们提供些许帮助,如果有什么不懂得请发邮件给我1208874066@qq.com,我收到你们的提问后尽量及时回复。

更多相关文章

  1. Android开发实践:自定义带消息循环(Looper)的工作线程
  2. android 自定义AlertDialog 与Activity相互传递数据
  3. 8 个最优秀的 Android Studio 插件
  4. Android 4.1模拟器访问服务器接口
  5. Android自定义之属性(二)
  6. Android使用XML文件定义用户界面
  7. Android 中自定义 Menu 资源

随机推荐

  1. Android在开机时自动启动一个应用程序
  2. Android剪贴板
  3. android实现截屏功能
  4. 为什么在AndroidManifest.xml中Activity
  5. Android布局属性详解
  6. android技术内幕心得
  7. 编译android出错
  8. [android]初始化代码仓库时出现“OSError
  9. Android(安卓)Adapter详解
  10. Android之SQLite学习