代码改变世界

Retrofit 实践

  蓝之风  阅读(699)  评论(0编辑  收藏  举报

Retrofit是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordinary Java Object,简单Java对象),POJO to JSON,网络请求(POST,GET,PUT,DELETE等)封装,对于网络调用的诸多细节做了封装,是的我们在开发过程中之关注对象的调用,而不关心网络请求的细节,是网络编程变得简单。是代码变得更加优雅易读。

1.包的获取与安装

Maven 配置

<dependency>
  <groupId>com.squareup.retrofit2</groupId>
  <artifactId>retrofit</artifactId>
  <version>2.2.0</version>
</dependency>
Gradle 配置
compile 'com.squareup.retrofit2:retrofit:2.2.0'
直接应用Jar包

2.初始化

 首先需要创建一个接口,然后配置注解
public interface APIClient {

    @GET("/api/movies")
    void movies(Callback<List<Movie>> callback);
}

3.配置Retrofit 的RestAdapter 使其生成代理类

复制代码
OkHttpClient client = new OkHttpClient();
        mRestAdapter = new RestAdapter.Builder()
                .setEndpoint(baseUrl)
                .setClient(new OkClient(client))
                .build();

  myApiClient = mRestAdapter.create(APIClient.class);
复制代码

这里client可以指定自己的配置实例,这里我选择的是OkClient, 当然你也可以配置其它的。上面这个配置是最简单的配置,当然你还可以配置一些转换器,来讲请求的Json 字符串转化成对象。

4. 调用

复制代码
RetrofitdemoApplication.getInstance().myApiClient.movies(new Callback<List<Movie>>() {
            @Override
            public void success(List<Movie> moves, Response response) {
                mMovies=moves;
                mListView.setAdapter(new MovieAdapter(MovieActivity.this,moves));
                Response r=response;           
            }
            @Override
            public void failure(RetrofitError error) {               
                String s=error.getMessage();
                Toast.makeText(MovieActivity.this, "get data from API failuar",
                        Toast.LENGTH_LONG).show();
            }
        });
复制代码

这个调用方法中有两个回掉,一个是失败时的回掉方法,另一个是成功时的回掉方法。

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示