美文网首页
Android:Retrofit的使用步骤

Android:Retrofit的使用步骤

作者: 绿茵场上的码者 | 来源:发表于2019-05-30 19:16 被阅读0次

    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'
    

    不要忘记添加网络权限

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

    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<Bean> 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<Bean> call = service.getCall();
    
    call.enqueue(new Callback<Bean>() {
        @Override
        public void onResponse(Call<Bean> call, Response<Bean> response) {
            response.body().show();
        }
    
        @Override
        public void onFailure(Call<Bean> call, Throwable t) {
            Log.i("MainActivity","请求失败");
        }
    });
    

    6、总结

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

    相关文章

      网友评论

          本文标题:Android:Retrofit的使用步骤

          本文链接:https://www.haomeiwen.com/subject/erhbtctx.html