美文网首页
Retrofit2 介绍和使用

Retrofit2 介绍和使用

作者: 菜鸟汤先生 | 来源:发表于2016-09-29 15:57 被阅读0次

    http://square.github.io/retrofit/ 官方源码

    Retrofit 是由Square公司开源的 HTTP网络请求框架的封装,类似Google开源的Volley ,Retrofit底层的网络请求库是基于OKHTTP的 前者主要是对接口的封装,后者处理网络请求。

    层级结构图

    应用程序通过Retrofit 请求网络,实际是Retrofit接口层封装请求参数 ,Header. Url 等信息 ,由OkHttp 完成后续请求操作 服务器返回数据后OkHttp将结果交给Retrofit,再根据需求对数据解析处理。

    一 使用 

    1 创建一个HTTP API的 Java Interface

    public interfaceGitHubService {

    @GET("users/{user}/repos")

    Call<List<Repo>>listRepos(@Path("user") String user);

    }

    2 创建Retrofit的实例  Retrofit实例创建一个实现了HTTP API 接口的实例对象

    Retrofit retrofit =newRetrofit.Builder()

    .baseUrl("https://api.github.com/")

    .build();

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

    3 用过实现了HTTP API接口的实例 发起同步或者异步的请求

    请求  https://api.github.com/users/{user}/repos  中listRepos 方法

    Call> repos = service.listRepos("octocat");

    //同步调用

    try{

    repos.execute();

    }catch(IOException e) {

    e.printStackTrace();

    }

    //异步调用

    repos.enqueue(newCallback>() {

    @Override

    public voidonResponse(Call> call,Response> response) {

    }

    @Override

    public voidonFailure(Call> call,Throwable t) {

    }

    });

    二 URL 配置

    Retrofit 支持协议GET/POST/PUT/DELETE/HEAD/PATCH 这些协议以注解的形式配置

    @GET("users/{user}/repos")Call>listRepos(@Path("user") String user)

    构造Retrofit时传入的baseUrl和注解的Value 拼成了整个请求路径baseUrl/Value

    2.1常用参数注解

    Url中?后面的key-value 键值对

    @Query&@QueryMap 

    表单请求

    @Field& @FieldMap

    @Part& @PartMap @Multipart @Streaming

    Http请求头参数的设置

    @Head & @HeadMap @Heads

    三 高级用法 见DEMO

    相关文章

      网友评论

          本文标题:Retrofit2 介绍和使用

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