Retrofit使用介绍

Retrofit概念

Retrofit是一个网络加载库,底层是基于okhttp来实现的
Retrofit 的原理,有三个十分重要的概念:『注解』,『动态代理』,『反射』。

添加依赖

compile 'com.squareup.retrofit2:retrofit:2.1.0'

在 Retrofit 2.0 中,如果要将 JSON 数据转化为 Java 实体类对象,需要自己显式指定一个 Gson Converter。

compile 'com.squareup.retrofit2:converter-gson:2.1.0'

使用

我们访问的API接口地址:

https://api.github.com/users/Guolei1130

1.定义接口

public interface APIInterface {
//    https://api.github.com/users/Guolei1130
    @GET("/users/{user}")
    Call getUser(@Path("user")String user);
}

@GET注解标识了请求类型

"/users/{user}" 是我们访问的接口地址的一部分,与baseurl一起组成完整的接口地址,即:baseurl+"/users/{user}"

其中 {user} 的作用类似于占位符,具体类型由getUser(@Path("user")String user)指定,此处表示user类型为String。

Call 是一个请求对象,表示返回结果是一个 UserBean类型的实例。

2.生成实体类

这里推荐使用Android Studio的插件GSONFormat

GsonFormat安装方法:

方法一:
1.Android studio File->Settings..->Plugins–>Browse repositores..搜索GsonFormat
2.安装插件,重启android studio

方法二:
1.下载GsonFormat.jar ;
2.Android studio File->Settings..->Plugins –>install plugin from disk..导入下载GsonFormat.jar
3.重启android studio

使用方法:

在实体类中
Retrofit使用介绍_第1张图片
然后选择
Retrofit使用介绍_第2张图片
然后将json串粘贴到如图所示的输入框中
Retrofit使用介绍_第3张图片
点击OK就会自动生成实体类。

3.请求网络

有了 要连接的Http接口 和 要返回的数据结构,我们就可以进行网络请求了。

1.首先构造Retrofit对象

我们前面说的baseUrl就是在这一步设置的

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://api.github.com")
                .addConverterFactory(GsonConverterFactory.create())
                .build();

2.创建API接口对象

APIInterface api = retrofit.create(APIInterface.class);

3.创建请求对象

Call guolei1130 = api.getUser("Guolei1130");

这里的.getUser(“Guolei1130”) 取代了前面的 {user}。

4.发送请求

同步请求

guolei1130.execute();

异步请求

guolei1130.enqueue(new Callback() {
            @Override
            public void onResponse(Call call, Response response) {
                //成功返回数据后在这里处理,使用response.body();获取得到的结果
                UserBean userBean = response.body();
            }

            @Override
            public void onFailure(Call call, Throwable t) {

            }
        });

你可能感兴趣的:(Android基础,Retrofit)