OkHttp资料推荐 和 下载进度监听开源
2015-10-21 11:39
609 查看
实习了这么久,决定写给自己一个小的总结。
最近导师让我,做网络模块封装,我采用的是okhttp作为底层。
okhttp相关资料:
OkHttp官方介绍 不懂就看官方介绍和相应源代码就可以了。
OkHttp使用介绍 潼哥写的非常容易理解。
Okhttp源码分析 这个帖子我看过还不错,在此推荐。
CoreProgess CoreProgress有上传和下载状态监听,下载时没有考虑实际情况的数值,状态条会出问题,已经在github 给作者提交过fork了。
翻了一遍网络上的资源,发现下载监听的有一个demo,就是CoreProgress,但是下载的部分有Bug,于是之自己写。
因为公司不让上传内部代码,所以说重新写了个小的demo,不能和业务重合,demo有点简陋,只有核心的几行代码,请见谅。
如果上传的请使用 大神写的 CoreProgess,膜拜过,但在这里有个bug:sink 中获取的byteCount然后传出,这里bytecount 是 byte数组的size 是固定死的,但在io时,每次读出来的count是小于 byte数组的size的 。我也给大神fork过了。
源码
良辰在此有理了,geckhan。
最近导师让我,做网络模块封装,我采用的是okhttp作为底层。
okhttp相关资料:
OkHttp官方介绍 不懂就看官方介绍和相应源代码就可以了。
OkHttp使用介绍 潼哥写的非常容易理解。
Okhttp源码分析 这个帖子我看过还不错,在此推荐。
CoreProgess CoreProgress有上传和下载状态监听,下载时没有考虑实际情况的数值,状态条会出问题,已经在github 给作者提交过fork了。
翻了一遍网络上的资源,发现下载监听的有一个demo,就是CoreProgress,但是下载的部分有Bug,于是之自己写。
因为公司不让上传内部代码,所以说重新写了个小的demo,不能和业务重合,demo有点简陋,只有核心的几行代码,请见谅。
public interface IProgressListener { void onStart(long contentLength); void onProgress(long currentLength); void onSuccess(String filePath); } //先定义一个接口 private void downloading(final OkHttpClient client, final Request request, IProgressListener listener) throws IOException { Response response = client.newCall(request).execute(); //连接网络 InputStream inputStream=null; int count ; byte[] bytes = new byte[BYTESIZE]; if (response.isSuccessful()) { //如果返回的状态码是成功的 获取inputstream 并且回调传入文件的长度 inputStream = response.body().byteStream(); listener.onStart(response.body().contentLength()); } //io时 传出 目前读取进度 if (inputStream!=null){ BufferedInputStream bis = new BufferedInputStream(inputStream); int sumCount =0; while ((count=bis.read(bytes))!=-1){ sumCount+=count; listener.onProgress(sumCount); } } /** * todo 校验文件 是否完整等问题 */ listener.onSuccess("ok"); }
如果上传的请使用 大神写的 CoreProgess,膜拜过,但在这里有个bug:sink 中获取的byteCount然后传出,这里bytecount 是 byte数组的size 是固定死的,但在io时,每次读出来的count是小于 byte数组的size的 。我也给大神fork过了。
源码
良辰在此有理了,geckhan。
相关文章推荐
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C#获取网页源代码的方法
- LCL.VBS 病毒源代码
- ASP常用源代码的总结(上)
- php查看网页源代码的方法
- Lua中的源代码预编译浅析
- ASP常用源代码的总结(下)
- android private libraries 中的包源代码添加方法
- jQuery-digest | 咀嚼jQuery源码
- 掌握主流框架的源码实现,理解框架背后的思想(续) 3ff0
- 2048 C++源代码by Reason
- Spark源码分析(1) 从WordCount示例看Spark延迟计算原理
- 37、chen框架v2源代码和示例项目发布
- [源码]Norton Ghost C# 源代码
- [源代码]symantec远程控制软件PcAnywhere源代码分享
- [源代码]Torque3D引擎SDK
- [游戏源码]Doom3公布源代码下载
- 《Doom 3》源代码将在《Rage》上市后免费发布
- 【资料分享】网游[天龙八部]源代码分享
- 类似腾讯手机管家应用源码完整版