Android面试题:Retrofit

目录

源码:

相关视频:

相关文章:

一、简介:

二、Retrofit常用参数注解:

三、Retrofit使用:


源码:

square/retrofit

相关视频:

Retrofit网络库

相关文章:

Android 优雅的让RxJava2.0+Retrofit2.0结合使用

手写Rxjava+Retrofit+Mvp

这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)

网络加载框架 - Retrofit

Retrofit2 完全解析 探索与okhttp之间的关系(一)

Retrofit2 完全解析 探索与okhttp之间的关系(二)

Retrofit2 完全解析 探索与okhttp之间的关系(三)

你真的会用Retrofit2吗?Retrofit2完全教程

用 Retrofit 2 简化 HTTP 请求

Retrofit   [ˈretroʊfɪt] 

一、简介:

Retrofit 是基于OKhttp网络请求框架的二次封装,本质是OKhttp。所以说Retrofit并不是一个网络框架、它只是一个网络框架封装。

Android AsyncHttp 基于HttpClient ,已经停止维护,Android5.0之后不再使用HttpClient,不推荐应用。

Volley 是google推出的基于HttpUrlConnection 的适合轻量级数据传输的网路库,不适合大文件的上传和下载。

Retrofit优点:API设计简洁易用、注解化配置高度解耦、支持多种解析器、支持Rxjava。

二、Retrofit常用参数注解:

@GET、@POST:确定请求方式
@Path:请求URL的字符替代
@Query:要传递的参数
@QueryMap:包含多个@Query注解参数
@Body:添加实体类对象
@FormUrlEncoded:URL编码

三、Retrofit使用:

1、Retrofit开源库、OkHttp网络库、数据解析器集成、注册网络权限;

2、创建接口设置请求类型与参数:
    新建UserInfoModel类和UserMgrService接口
    @GET("login")
    public Call login(@Query("username") String username, @Query("pwd") String pwd);

3、创建Retrofit对象、设置数据解析器
    Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Api.API_BASE)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();

 

  • Gson             com.squareup.retrofit2:converter-gson:2.0.2
  • Jackson        con.squareup.retrofit2:converter-jackson:2.0.2
  • Simple XML  com.squareup.retrofit2:converter-simplexml:2.0
  • Protobuf        com.squareup.retrofit2:converter-protobuf:2.0.2
  • Moshi            com.squareup.retrofit2:converter-moshi:2.0.2
  • Wire              com.squareup.retrofit2:converter-wire:2.0.2
  • Scalars          com.squareup.retrofit2:converter-scalars:2.0.2

4、生成接口对象:
    UserMgrService service = retrofit.create(UserMgrService.class);  

5、调用接口方法返回Call对象:
    Call call = service.login("zhangsan","123456");

6、发送请求(同步、异步)
    同步:调用Call对象的execute(),返回结果的响应体;
    异步:调用Call对象的enqueue(),参数是一个回调;

7、处理返回数据

 

 

 

你可能感兴趣的:(Andorid:面试)