本帖最后由 移动天宇 于 2015-10-26 10:42 编辑

LiteHttp2.0很多东东焕然一新,旧的能力也得到增强,没有使用的同学来了解一下吧。

Android网络框架为什么可以选用lite-http?

lite-http 初步使用 和 快速起步上手

本文章面向Android开发者,主要展示开源网络通信框架LiteHttp的主要用法,并讲解其关键功能的运作原理,同时传达了一些框架作者在日常开发中的一些最佳实践和经验。

1. lite-http是什么? (・̆⍛・̆)

LiteHttp是一款简单、智能、灵活的HTTP框架库,它在请求和响应层面做到了全自动构建和解析,主要用于Android快速开发。

2. 为什么选lite-http? (•́ ₃ •̀)

简单、强大,线程无关,一行代码搞定API请求和数据转化:

User user = liteHttp.get(url, User.class);
当然也可以开启线程异步下载文件:

  1. liteHttp.executeAsync(new FileRequest(url,path).setHttpListener(
  2. new HttpListener<File>(true, true, true) {
  3. @Override
  4. public void onLoading(AbstractRequest<Bitmap> request, long total, long len) {
  5. // 进度通知
  6. }
  7. })
  8. );

复制代码

通过注解约定完成异步请求:

  1. @HttpUri(loginUrl)
  2. class LoginParam extends HttpRichParamModel<User> {
  3. private String name;
  4. private String password;
  5. public LoginParam(String name, String password) {
  6. this.name = name;
  7. this.password = password;
  8. }
  9. }
  10. 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. 老湿,来点教学和分析带我飞呗? (◕‸◕)

好的 ◝‿◜ ,下面直接给你看,疗效好记得联系我,呵呵哒:

1. 初始化和初步使用

2. 简化请求和非安全方法的使用

3. 自动对象转化

4. 自定义DataParser和Json序列化库的替换

5. 文件、位图的上传和下载

6. 禁用网络和流量、时间统计

7. 重试和重定向

8. 处理异常和取消请求

9. POST方式的多种类型数据传输

10. lite-http异步并发与调度策略

11. 全局配置与参数设置详解

12. 通过注解完成API请求

13. 多层缓存机制及用法

14. 回调监听器详解

15. 并发调度控制器详解

Github地址: https://github.com/litesuits/android-lite-http

官网:http://litesuits.com

Android网络通信框架LiteHttp2.0 开篇简介和大纲目录的更多相关文章

  1. Android 网络通信框架Volley简介(Google IO 2013)

    1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...

  2. [转]Android 网络通信框架Volley简介(Google IO 2013)

    Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...

  3. 【转】Android 网络通信框架Volley简介(Google IO 2013)

    Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...

  4. Android 网络通信框架Volley简介

    1.1. Volley引入的背景在以前,我们可能面临如下很多麻烦的问题. 比如以前从网上下载图片的步骤可能是这样的流程: 在ListAdapter#getView()里开始图像的读取. 通过Async ...

  5. android 网络通信框架volly

    1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...

  6. Android 网络通信框架Volley(一)

    转自:http://blog.csdn.net/t12x3456/article/details/9221611 1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫 ...

  7. Android 网络通信框架Volley基本介绍

    Volley主页 https://android.googlesource.com/platform/frameworks/volley http://www.youtube.com/watch?v= ...

  8. Android 网络通信框架Volley的简单使用

    Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮. Volley提供的功能: JSON,图像等的异步下载: 网络请求的排序(scheduling) 网络请求的优先级处理 ...

  9. Android 网络通信框架Volley(二)

    Volley提供2个静态方法: public static RequestQueue newRequestQueue(Context context) {} public static Request ...

随机推荐

  1. PXC 避免加入集群时发生SST

    环境 现有集群节点: 192.168.99.210:3101 新加入节点: 192.168.99.211:3101 通过xtrabackup备份还原实例,并通过同步方式追数据: 已有节点情况: roo ...

  2. 【LOJ6201】【bzoj4939】【YNOI2016】掉进兔子洞

    一道比较简单的莫队…… 用bitset维护三个区间的交元素. #include<bits/stdc++.h> ; ; #define UI unsigned int #define rep ...

  3. centos 7 防火墙设置

    一.介绍 centos 7 的防火墙是以firewalld daemon的形式存在,区别于iptables 二.使用方法 centos7 主要通过firewall-cmd命令来管理firewall, ...

  4. redis 安装及安装遇到的问题解决

    https://blog.csdn.net/jy0902/article/details/19248299 http://q.fireflyclub.org/?/article/24 https:// ...

  5. Java学习笔记(十一)——通过JDBC操作mysql数据库

    [前面的话] 时间总是好快,每次都感觉还没有怎么好好去过,对于好多事情,希望自己可以做的更多一点.心情能够好一点,平淡一点就行了. 学习过程中的知识点总结,基础知识,选择阅读. [JDBC定义] 定义 ...

  6. 前端读者 | 关于存储及CSS的一些技巧

    @羯瑞 HTML5存储 cookies 大小限制4K 发送在http请求头中 子域名能读取主域名的cookies 本地存储 localStorage sessionStorage 大小限制5M(注意超 ...

  7. sublime text按esc经常进入command mode(不能输入任何东西)

    在使用sublime text进行 选中 操作中,如果使用了esc退出选中状态,会进入command mode,现象是不能输入任何东西,关闭当前编辑文件重新打开可以解决.但是很影响连贯性.可以通过一些 ...

  8. php详解和优化

    nginx结合php使用FastCGI方式 apache结合php,php是作为一个模块加载到apache中 (1)FastCGI工作原理 1.用户发送http请求报文给nginx服务器 2.ngin ...

  9. 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 ...

  10. 洛谷P2236 HNOI2002 彩票 [暴搜]

    题目传送门 彩票 分析: 虽然题目标签上标的是Splay,但我一个蒟蒻至今也沒掌握平衡树,所以就索性一个暴搜,加一点剪枝就水过去了- 代码: #include<cstdio> #inclu ...