Retrofit 2.0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Cute_Code/article/details/88396522

1.简介

Retrofitç®ä»

2.使用介绍

 1:添加Retrofit库的依赖 

      1. 在 Gradle加入Retrofit库的依赖

       build.gradle

dependencies {
    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    // Retrofit库
    compile 'com.squareup.okhttp3:okhttp:3.1.2'
    // Okhttp库
  }

      2. 添加 网络权限 
      AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>


 2:创建 接收服务器返回数据 的类 

Reception.java

public class Response{
    ...
    // 根据返回数据的格式和数据解析方式(Json、XML等)定义
   
        }

 3:创建 用于描述网络请求 的接口 

public interface GetRequest_Interface {

    @GET("openapi.do?keyfrom=Yanzhikai&key=2032414398&type=data&doctype=json&version=1.1&q=car")
    Call<Translation>  getCall();
    // @GET注解的作用:采用Get方法发送网络请求

    // getCall() = 接收网络请求数据的方法
    // 其中返回类型为Call<*>,*是接收数据的类(即上面定义的Translation类)
    // 如果想直接获得Responsebody中的内容,可以定义网络请求返回值为Call<ResponseBody>
}

注解类型

注解类å

 4:创建 Retrofit 实例 

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://fanyi.youdao.com/") // 设置网络请求的Url地址
                .addConverterFactory(GsonConverterFactory.create()) // 设置数据解析器
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) // 支持RxJava平台
                .build();



 5:创建 网络请求实例 并 配置网接口络请求参数 

 // 创建 网络请求接口 的实例
        GetRequest_Interface request = retrofit.create(GetRequest_Interface.class);

        //对 发送请求 进行封装
        Call<Response> call = request.getCall();


 6:发送网络请求(异步 / 同步)

           封装了 数据转换、线程切换的操作

/发送网络请求(异步)
        call.enqueue(new Callback<Translation>() {
            //请求成功时回调
            @Override
            public void onResponse(Call<Translation> call, Response<Translation> response) {
                //请求处理,输出结果
                response.body().show();
            }

            //请求失败时候的回调
            @Override
            public void onFailure(Call<Translation> call, Throwable throwable) {
                System.out.println("连接失败");
            }
        });

// 发送网络请求(同步)
Response<Reception> response = call.execute();

 7: 处理服务器返回的数据
 

 

猜你喜欢

转载自blog.csdn.net/Cute_Code/article/details/88396522