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;
}
}
Retrofit 使用方法的更多相关文章
- 一种封装Retrofit的方法,可以自动解析Gson,回避Method return type must not include a type variable or wildcard: retrofit2.Call<T>的问题
封装目的:屏蔽底层实现,提供统一接口,并支持Gson自动转化 最初封装: //请求方法 interface RequestListener { interface PostListener { @PO ...
- Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(二)
1,昨天我们基本上把MVP给封装起来了,今天接着昨天的东西来结合RxJava把Retrofit把网络框架简单的封装一下,先看一下我们今天实现的效果: 哈哈 ,还是昨天的效果,好吧 ,我认错. 2,由于 ...
- 简单研究下Retrofit
2015-09-24 15:36:26 第一部分: 1. 什么是Retrofit? (点击图片有惊喜) 以上是来自官网的解释,言简意赅,咳咳,我就不翻译了~ 2. 如何使用Retrofit? 2.1 ...
- Retrofit原理
Retrofit原理解析最简洁的思路 Retrofit 工作原理总结 从架构角度看Retrofit的作用.原理和启示 Retrofit主要是在create方法中采用动态代理模式实现接口方法:这个过程构 ...
- Retrofit 简介 wiki 文档
简介 Type-safe HTTP client for Android and Java by Square, Inc. GitHub主页:https://github.com/square/ret ...
- 源码分析Retrofit请求流程
Retrofit 是 square 公司的另一款广泛流行的网络请求框架.前面的一篇文章<源码分析OKHttp执行过程>已经对 OkHttp 网络请求框架有一个大概的了解.今天同样地对 Re ...
- 从Retrofit的源码来看 HTTP
关于Retrofit是啥,这里就不多解释了,还是先来瞅下官网: 而这次主要是了解它的底层动作机制,而在了解底层之前先来回顾一下官网的整体使用步骤: 咱们也以官网的这个例子为例,先从简单的使用开始逐步深 ...
- spring-cloud-square源码速读(retrofit + okhttp篇)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos spring-cloud-square系列文章 五分钟 ...
- Android 网络框架之Retrofit2使用详解及从源码中解析原理
就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题: 1 . 什么是Retrofit? Retrofit是针对于Android/Java的.基于okHttp的.一种轻量级且安全 ...
随机推荐
- JOISC2019 简要题解
第18回 日本情報オリンピック 春合宿 オンラインコンテスト (JOISC2019) 官网 Day 1 試験 (Examination) description 有\(N\)个学生,每个学生有两科成绩 ...
- 【shell编程】之基础知识-流程控制
和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); ...
- Java打印九九乘法表及倒打九九乘法表
//正打 public class Test3 { public static void main(String[] args) { for(int j=1;j<10;j++){ for(int ...
- JQuery城市选择
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- C libraries in Linux
Copy from a book. There are several C libraries to choose from. The main options are as follows: gli ...
- 从一到无穷大:科学中的事实和臆测 (G. 伽莫夫 著)
第一部分 做做数字游戏 第一章 大数 (已看) 第二章 自然数和人工数 (已看) 第二部分 空间,时间与爱因斯坦 第三章 空间的不寻常的性质 (已看) 第四章 四维世界 (已看) 第五章 时间和空间的 ...
- openstack--2--控制节点安装mysql和rabbitmq
生产中可以把mysql数据库单独安装到一台机器上,这里因为实验机器有限,就把mysql安装到了控制节点 其实openstack每个组件都可以安装到单独的机器上. RabbitMQ介绍 RabbitMQ ...
- mysql 的 help 命令:每个命令,都有相应的反斜杠(\)加一个字母或字符的简写
mysql> help For information about MySQL products and services, visit: http://www.mysql.com/ For d ...
- node api 之:process - 进程
process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程. 因为是全局变量,所以无需使用 require().
- java byte数组与String的相互转换
String -> byte数组 String str = "abc天"; byte[] btr = str.getBytes(); System.out.printl ...