本帖最后由 移动天宇 于 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. 【bzoj4896】补退选

    傻逼题. 每个点维护下vector,然后随便做. #include<bits/stdc++.h> ; using namespace std; typedef long long ll; ...

  2. pycaffe使用.solverstate文件继续训练

    import caffe solver_file = "solver.prototxt" solverstate = "xx.solverstate" caff ...

  3. wifi驱动移植

    目标板:Hi3518 内核版本:linux3.0.8   1.修改makefile #PLATFORM = PC //注释掉 PLATFORM = HI3518 //支持平台 ifeq ($(PLAT ...

  4. FineReport——巧妙实现类tab布局

    在FR中,表达form支持局部刷新和tab布局,在报表中,不能做到这样,只能舍弃一些功能来做到类似的tab布局. 首先,在参数面板放一个文本控件temp,用作一个临时值,需要设置一个默认值,而切换是通 ...

  5. Dubbo之旅--注册中心

    在介绍Dubbo的内部逻辑的时候提到很多次注册中心的概念.实现注册中心的有很多,主要是以下四个注册中心分别是: Multicast注册中心 Zookeeper注册中心 Redis注册中心 Simple ...

  6. django开发项目实例2--如何链接图片和css文件(静态文件)

    在上一篇随笔里面,我们已经介绍了如何从零开始用django建立一个项目并且初步运行以来了, 现在我们就要开始写我们的html了,也就是django里面的模板了,不过这节我们只讲如何链接图片和css(静 ...

  7. DataSet、DataTable、DataRow的数据复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

  8. canvas 进入游戏点击时苹果手机为什么会闪

    canvas 进入游戏点击时苹果手机为什么会闪 ?? 大神门 谁有解决办法???

  9. AC日记——NOI2016区间 bzoj 4653

    4653 思路: 线段树,指针滑动: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1000005 #def ...

  10. 创建一个支持ES6的Nodejs项目

    文章来自于:https://www.codementor.io/iykyvic/writing-your-nodejs-apps-using-es6-6dh0edw2o 第一步:创建项目文件夹并初始化 ...