zoukankan      html  css  js  c++  java
  • Retrofit 实践

    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();
                }
            });

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

  • 相关阅读:
    指针
    显示和隐式转换
    C++虚函数
    字符串输出
    BP神经网络
    超像素分割
    函数putText()在图片上写文字
    compare
    十五、cookies和session的使用
    爬取腾讯社招职位信息
  • 原文地址:https://www.cnblogs.com/vaiyanzi/p/6588156.html
Copyright © 2011-2022 走看看