Retrofit 使用方法

public class MainActivity extends Activity {
    private ListView mListView;

    //private ImageListAdapter adapter;
    private ImageListPicassoAdapter adapter;
    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext=this;

       ResultApi.getBroadcastApi(1,"user_invitation_list",1,15, new ICallBack<ResultBean>() {
            @Override
            public void onSuccess(String flag, String key, ResultBean resultBean) {
                //adapter=new ImageListAdapter(mContext, resultBean.getResult());
                adapter=new ImageListPicassoAdapter(mContext, resultBean.getResult());
                mListView.setAdapter(adapter);
            }
            @Override
            public void onFailure(String flag, String key, String why) {
            }
        });

        /*ResultApi.getBroadcastApiNoPar(new ICallBack<ResultBean>() {
            @Override
            public void onSuccess(String flag, String key, ResultBean resultBean) {
                //adapter=new ImageListAdapter(mContext, resultBean.getResult());
                adapter=new ImageListPicassoAdapter(mContext, resultBean.getResult());
                mListView.setAdapter(adapter);
            }
            @Override
            public void onFailure(String flag, String key, String why) {

            }

        });*/

    }

public class ResultApi {

    public static Call<ResultBean> getBroadcastApi(int ver,final String action,int page,int pageSize,final ICallBack<ResultBean> callBack){
        Call<ResultBean> callResultBean=BuildService.getMeiNvService().getBroadcast(ver, action, page, pageSize);
        callResultBean.enqueue(new Callback<ResultBean>() {

            @Override
            public void onResponse(Call<ResultBean> call, Response<ResultBean> response) {
                   if (response.isSuccessful()) {
                           ResultBean resultBean = response.body();
                          if (resultBean.getResult().size()>0) {
                              //数据正确,把数据返回
                              callBack.onSuccess(action, "", resultBean);
                          } else {
                              //数据错误
                              callBack.onFailure(action, "", "数据错误");
                          }
                   }
            }

            @Override
            public void onFailure(Call<ResultBean> call, Throwable t) {

            }
        });
        return callResultBean;
    }

    public static Call<ResultBean> getBroadcastApiNoPar(final ICallBack<ResultBean> callBack){
        Call<ResultBean> callResultBean=BuildService.getMeiNvService().getBroadcastNoPar();
        callResultBean.enqueue(new Callback<ResultBean>() {

            @Override
            public void onResponse(Call<ResultBean> call, Response<ResultBean> response) {
                   if (response.isSuccessful()) {
                           ResultBean resultBean = response.body();
                          if (resultBean.getResult().size()>0) {
                              //数据正确,把数据返回
                              callBack.onSuccess("", "", resultBean);
                          } else {
                              //数据错误
                              callBack.onFailure("", "", "数据错误");
                          }
                   }
            }

            @Override
            public void onFailure(Call<ResultBean> call, Throwable t) {

            }
        });
        return callResultBean;
    }
}

public interface ApiService {
    //http://api.abc.com/WebApi/api.ashx?ver=1&action=user_invitation_list&page=1&page_size=10
    @GET("api.ashx")
    Call<ResultBean>  getBroadcast(@Query("ver") int ver,
            @Query("action") String action, @Query("page") int page,
            @Query("page_size") int pageSize);

    //http://api.abc.com/WebApi/api.ashx?ver=1&action=user_invitation_list&page=1&page_size=10
    @GET("api.ashx?ver=1&action=user_invitation_list&page=1&page_size=10")
    Call<ResultBean>  getBroadcastNoPar();
}

public class BuildService {
     private static Retrofit retrofit;

        public static ApiService getMeiNvService() {
            if (retrofit == null) {
                retrofit = new Retrofit.Builder()
                        .baseUrl(config.HTTP_URL)                         //设置Base的访问路径
                        .client(defaultOkHttpClient())
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();
            }
            return retrofit.create(ApiService.class);
        }

        public static OkHttpClient defaultOkHttpClient() {
            OkHttpClient client = new OkHttpClient();
            return client;
        }
}

下载JAR包文件

时间: 2024-11-29 09:41:46

Retrofit 使用方法的相关文章

Rxjava+ReTrofit+okHttp深入浅出-终极封装

Rxjava+ReTrofit+okHttp深入浅出-终极封装 背景: 学习Rxjava和retrofit已经很长时间了,功能确实很强大,但是使用起来还是有点复杂,代码的重复性太高,所以决定把基于retrofit和rxjava的处理统一封装起来,实现的功能: 1.Retrofit+Rxjava+okhttp基本使用方法 2.统一处理请求数据格式 3.统一的ProgressDialog和回调Subscriber处理 4.取消http请求 5.预处理http请求 5.返回数据的统一判断 效果: 封装

Retrofit源码分析以及MVP框架封装使用

阅读此文前请先阅读Retrofit+okhttp网络框架介绍 从上文中我们已经了解通过如下代码即可得到返回给我们call 以及 response对象,今天我们通过源码来分析这个过程是如何实现的. /** * 获取天气数据 * @param cityname * @param key * @return */ @GET("/weather/index") Call<WeatherData> getWeatherData(@Query("format") S

Android Retrofit框架解析

随着Google对HttpClient的摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofit则对okHttp进行了强制依赖.Retrofit也是Square公司开发的一款针对Android网络请求的框架,其实质就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口.retrofit非常适合于RESTful url格式的请求,更多使用注解的方式提供功能. 既然是RESTful架构,那么我们就来看一下什么是REST吧. REST(REpr

带你一步步剖析Retrofit 源码解析:一款基于 OkHttp 实现的网络请求框架

OkHttp与Retrofit 的区别与联系是怎样的? 参考答案:OkHttp和Retrofit都是目前流行网络开源框架 封装不同:Retrofit封装了具体的请求,线程切换以及数据转换.retrofit通过使用代理,外观,策略模式对okhttp进行了封装OkHttp 是基于Http协议封装的一套请求客户端 职责不同:Retrofit主要负责应用层面的封装,面向开发者,方便使用,比如请求参数,响应数据的处理,错误处理等等.OkHttp主要负责socket部分的优化与封装,比如网络访问,多路复用,

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

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51304204: 本文出自:[张鸿洋的博客] 之前写了个okhttputils的工具类,然后有很多同学询问这个工具类和retrofit什么区别,于是上了下官网,发现其底层对网络的访问默认也是基于okhttp,不过retrofit非常适合于restful url格式的请求,更多使用注解的方式提供功能. 既然这样,我们本篇博文首先研究其所提供的常用的用法: 一般的get.post请

Retrifit2.0

Retrofit2.0使用详解 标签: androidretrofit网络 2016-04-03 01:09 39079人阅读 评论(16) 收藏 举报  分类: Android开源框架(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 综述 retrofit是由square公司开发的.square在github上发布了很多优秀的Android开源项目.例如:otto(事件总线),leakcanary(排查内存泄露),android-times-square(日历控

Android开发中无处不在的设计模式——动态代理模式

继续更新设计模式系列,写这个模式的主要原因是最近看到了动态代理的代码. 先来回顾一下前5个模式: - Android开发中无处不在的设计模式--单例模式 - Android开发中无处不在的设计模式--Builder模式 - Android开发中无处不在的设计模式--观察者模式 - Android开发中无处不在的设计模式--原型模式 - Android开发中无处不在的设计模式--策略模式 动态代理模式在Java WEB中的应用简直是随处可见,尤其在Spring框架中大量的用到了动态代理:算是最重要

Volley 解析

Volley Request处理流程 RequestQueue类中有三个基本的队列.调用RequestQueue.add(request)增加的请求会先增加mCacheQueue(优先级堵塞队列)由CacheDispatcher( 循环读取队列中的请求,当没有请求处理时线程堵塞)线程处理.假设该请求之前已经被缓存.读取缓存返回给主线程结果.否则将请求增加mNetworkQueue由NetworkDispatcher线程处理. 因为处理网络请求比較耗时.NetworkDispatcher线程默认开

Android 网络框架之Retrofit2使用详解及从源码中解析原理

就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全的.并使用注解方式的网络请求框架. 2 . 我们为什么要使用Retrofit,它有哪些优势? 首先,Retrofit使用注解方式,大大简化了我们的URL拼写形式,而且注解含义一目了然,简单易懂: 其次,Retrofit使用简单,结构层次分明,每一步都能清晰的表达出之所以要使用的寓意: 再者,Retr