Android网络通信框架LiteHttp2.0 开篇简介和大纲目录
本帖最后由 移动天宇 于 2015-10-26 10:42 编辑
LiteHttp2.0很多东东焕然一新,旧的能力也得到增强,没有使用的同学来了解一下吧。
本文章面向Android开发者,主要展示开源网络通信框架LiteHttp的主要用法,并讲解其关键功能的运作原理,同时传达了一些框架作者在日常开发中的一些最佳实践和经验。
1. lite-http是什么? (・̆⍛・̆)
LiteHttp是一款简单、智能、灵活的HTTP框架库,它在请求和响应层面做到了全自动构建和解析,主要用于Android快速开发。
2. 为什么选lite-http? (•́ ₃ •̀)
简单、强大,线程无关,一行代码搞定API请求和数据转化:
User user = liteHttp.get(url, User.class);
当然也可以开启线程异步下载文件:
- liteHttp.executeAsync(new FileRequest(url,path).setHttpListener(
- new HttpListener<File>(true, true, true) {
- @Override
- public void onLoading(AbstractRequest<Bitmap> request, long total, long len) {
- // 进度通知
- }
- })
- );
复制代码
通过注解约定完成异步请求:
- @HttpUri(loginUrl)
- class LoginParam extends HttpRichParamModel<User> {
- private String name;
- private String password;
- public LoginParam(String name, String password) {
- this.name = name;
- this.password = password;
- }
- }
- liteHttp.executeAsync(new LoginParam("lucy", "123456"));
复制代码
将构建类似下面请求:http://xxx?name=lucy&password=123456
案例详情可见我另一篇lite-http引言文章:LiteHttp 引言:开发者为什么要选LiteHttp??
3. lite-http有什么特点? (´ڡ`)
轻量级:微小的内存开销与Jar包体积,99K左右。
单线程:请求本身具有线程无关特性,基于当前线程高效率运作。
全支持:GET, POST, PUT, DELETE, HEAD, TRACE, OPTIONS, PATCH。
全自动:一行代码自动完成Model与Parameter、Json与Model。
可配置:更多更灵活的配置选择项,多达 23+ 项。
多态化:更加直观的API,输入和输出更加明确。
强并发:自带强大的并发调度器,有效控制任务调度与队列控制策略。
注解化:通过注解约定参数,URL、Method、ID、TAG等都可约定。
易拓展:自定义DataParser将网络数据流转化为你想要的数据类型。
可替换:基于接口,轻松替换网络连接实现方式和Json序列化库。
多层缓存:内存命中更高效!多种缓存模式,支持设置缓存有效期。
回调灵活:可选择当前或UI线程执行回调,开始结束、成败、上传、下载进度等都可监听。
文件上传:支持单个、多个大文件上传。
文件下载:支持文件、Bimtap下载及其进度通知。
网络禁用:快速禁用一种、多种网络环境,比如指定禁用 2G,3G 。
数据统计:链接、读取时长统计,以及流量统计。
异常体系:统一、简明、清晰地抛出三类异常:客户端、网络、服务器,且异常都可精确细分。
GZIP压缩:Request, Response 自动 GZIP 压缩节省流量。
自动重试:结合探测异常类型和当前网络状况,智能执行重试策略。
自动重定向:基于 30X 状态的重试,且可设置最大次数防止过度跳转。
4. lite-http的整体架构是怎样的呀? (´ڡ`)
lite-http架构图
关于App架构,请看我另一篇文章分享:
怎样搭高质量的Android项目框架,框架的结构具体描述?
5. 老湿,来点教学和分析带我飞呗? (◕‸◕)
好的 ◝‿◜ ,下面直接给你看,疗效好记得联系我,呵呵哒:
Github地址: https://github.com/litesuits/android-lite-http
Android网络通信框架LiteHttp2.0 开篇简介和大纲目录的更多相关文章
- Android 网络通信框架Volley简介(Google IO 2013)
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...
- [转]Android 网络通信框架Volley简介(Google IO 2013)
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- 【转】Android 网络通信框架Volley简介(Google IO 2013)
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- Android 网络通信框架Volley简介
1.1. Volley引入的背景在以前,我们可能面临如下很多麻烦的问题. 比如以前从网上下载图片的步骤可能是这样的流程: 在ListAdapter#getView()里开始图像的读取. 通过Async ...
- android 网络通信框架volly
1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...
- Android 网络通信框架Volley(一)
转自:http://blog.csdn.net/t12x3456/article/details/9221611 1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫 ...
- Android 网络通信框架Volley基本介绍
Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...
- Android 网络通信框架Volley的简单使用
Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮. Volley提供的功能: JSON,图像等的异步下载: 网络请求的排序(scheduling) 网络请求的优先级处理 ...
- Android 网络通信框架Volley(二)
Volley提供2个静态方法: public static RequestQueue newRequestQueue(Context context) {} public static Request ...
随机推荐
- PXC 避免加入集群时发生SST
环境 现有集群节点: 192.168.99.210:3101 新加入节点: 192.168.99.211:3101 通过xtrabackup备份还原实例,并通过同步方式追数据: 已有节点情况: roo ...
- 【LOJ6201】【bzoj4939】【YNOI2016】掉进兔子洞
一道比较简单的莫队…… 用bitset维护三个区间的交元素. #include<bits/stdc++.h> ; ; #define UI unsigned int #define rep ...
- centos 7 防火墙设置
一.介绍 centos 7 的防火墙是以firewalld daemon的形式存在,区别于iptables 二.使用方法 centos7 主要通过firewall-cmd命令来管理firewall, ...
- redis 安装及安装遇到的问题解决
https://blog.csdn.net/jy0902/article/details/19248299 http://q.fireflyclub.org/?/article/24 https:// ...
- Java学习笔记(十一)——通过JDBC操作mysql数据库
[前面的话] 时间总是好快,每次都感觉还没有怎么好好去过,对于好多事情,希望自己可以做的更多一点.心情能够好一点,平淡一点就行了. 学习过程中的知识点总结,基础知识,选择阅读. [JDBC定义] 定义 ...
- 前端读者 | 关于存储及CSS的一些技巧
@羯瑞 HTML5存储 cookies 大小限制4K 发送在http请求头中 子域名能读取主域名的cookies 本地存储 localStorage sessionStorage 大小限制5M(注意超 ...
- sublime text按esc经常进入command mode(不能输入任何东西)
在使用sublime text进行 选中 操作中,如果使用了esc退出选中状态,会进入command mode,现象是不能输入任何东西,关闭当前编辑文件重新打开可以解决.但是很影响连贯性.可以通过一些 ...
- php详解和优化
nginx结合php使用FastCGI方式 apache结合php,php是作为一个模块加载到apache中 (1)FastCGI工作原理 1.用户发送http请求报文给nginx服务器 2.ngin ...
- MySQL workbench中的PK,NN,UQ,BIN,UN,ZF,AI说明
- PK: primary key (column is part of a pk) 主键- NN: not null (column is nullable) 是否为空 (非空)- UQ: uni ...
- 洛谷P2236 HNOI2002 彩票 [暴搜]
题目传送门 彩票 分析: 虽然题目标签上标的是Splay,但我一个蒟蒻至今也沒掌握平衡树,所以就索性一个暴搜,加一点剪枝就水过去了- 代码: #include<cstdio> #inclu ...