Android:Retrofit的使用步骤

1、前言

  • Android中,网络请求是必不可少的;
  • 目前RetrofitAndroid开发比较流行的网络请求框架,其操作性强、可扩展性好、代码风格简洁明了的优点帮助开发者事半功倍;

2、定义

一个Restful设计风格的HTTP网络请求框架,基于okhttp;

3、功能

  • 基于okhttp,遵循Restful API设计风格;
  • 通过注解配置网络请求参数;
  • 支持同步、异步网络请求;
  • 支持多种数据的解析、序列化格式(GSONJSONXMLProtobuf);
  • 提供对RxJava支持;

4、优点

  • 功能强大:支持同步、异步,支持多种数据的解析、序列化格式,支持RxJava
  • 简单易用:通过注解配置网络请求参数,采用大量设计模式简化使用;
  • 可扩展性好:功能模块高度封装,解耦彻底,如自定义Converters
  • 应用场景:任何网络请求的需求场景都应优先选择,特别是后台API遵循Rest API设计风格,并且项目中使用到RxJava的;

Retrofit是一个遵循Restful风格的网络请求框架的封装,原因是网络请求的核心是okhttp来完成,而Retrofit仅负责网络请求接口的封装,APP应用程序通过Retrofit请求网络,实际上是使用Retrofit接口层封装参数、headerurl等信息,之后由okhttp完成请求网络的操作,在服务器返回数据之后,okhttp将原始的结果交给retrofitretrofit再根据开发者需要进行数据解析;

5、使用步骤

  • 1、添加Retrofit库的依赖
  • 2、创建接收服务器返回的数据的类
  • 3、创建用于描述网络请求的接口
  • 4、创建Retrofit的实例
  • 5、创建网络请求接口实例并配置网络请求参数
  • 6、发送网络请求(异步/同步)

5.1、在gradle加入Retrofit依赖库

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

不要忘记添加网络权限


5.2、创建接收服务器返回数据的实体类Bean.java

package com.qinkl.retrofitdemo;
public class Bean {
    public String code;
    public String message;
}

5.3、创建用于描述网络请求的接口

RxJavahttp请求抽象成Java接口,采用注解的方式描述网络请求的参数和配置网络请求的相关信息
用动态代理方式动态将该接口翻译成一个HTTP请求,最后在执行HTTP请求
接口的每个方法的参数都需要使用注解来标注,否则会报错
创建接口文件MyApiService.java

package com.qinkl.retrofitdemo;
import retrofit2.Call;
import retrofit2.http.GET;

public interface MyApiService {
    @GET("openapi.do?keyfrom=Yanzhikai&key=2032414398&type=data&doctype=json&version=1.1&q=car")
    Call getCall();
}

5.4、创建Retrofit实例

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://fy.iciba.com/")
        .addConverterFactory(GsonConverterFactory.create(new Gson()))
        .build();

由于这里运用了GsonConverterFactory,所以要在gradle引入依赖包:

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

5.5、创建网络请求接口实例和配置网络请求参数相关信息

MyApiService service = retrofit.create(MyApiService.class);

5.6、发送网络请求

Call call = service.getCall();

call.enqueue(new Callback() {
    @Override
    public void onResponse(Call call, Response response) {
        response.body().show();
    }

    @Override
    public void onFailure(Call call, Throwable t) {
        Log.i("MainActivity","请求失败");
    }
});

6、总结

  • 通过本文,相信你一定对Retrofit的使用有了一定的了解;
  • 不过不仅仅要知道怎么用,还要明白其原理和工作过程,才能更好的掌握Retrofit的设计精髓;

你可能感兴趣的:(Android:Retrofit的使用步骤)