HttpURLConnection 下载代码
private int downloadFile(final String apkurl, final String apkname) {
Log.e(LOGTAG, "downloadApkBackground..apkurl="+apkurl+"; filePath="+apkname);
File file = new File(apkname);
FileOutputStream out = null;
InputStream is = null;
int fileLength = 0;
long count = 0;
try{
URL url = new URL(apkurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6*1000);
conn.setRequestMethod("GET");
conn.setDoOutput(true);
if(file.exists()){
count = file.length();
}
conn.setRequestProperty("User-Agent", "NetFox");
conn.setRequestProperty("RANGE", "bytes=" + count + "-");
conn .setRequestProperty("Accept-Encoding", "identity");
out = new FileOutputStream(file, true);
is = conn.getInputStream();
fileLength = conn.getContentLength();
Log.e(LOGTAG, "downloadApkBackground...count="+count+"; fileLength="+fileLength);
byte buf[] = new byte[4 * 1024];
int size = 0;
while ((size = is.read(buf)) != -1) { //down and cached
try {
out.write(buf, 0, size);
count += size;
if(count >= fileLength){
return UPDATE_FAIL_WITH_SUCCESS;
}
//Log.e(LOGTAG, "downloadApkBackground..count="+count);
//publishProgress(count, fileLength);
out.flush();
} catch (Exception e) {
e.printStackTrace();
mDownloadIsError = true;
return UPDATE_FAIL_WITH_FAIL_UNKONWN;
}
}
return UPDATE_FAIL_WITH_SUCCESS;
}catch (MalformedURLException e) {
mDownloadIsError = true;
e.printStackTrace();
}catch (IOException e) {
mDownloadIsError = true;
e.printStackTrace();
}finally{
try{
out.close();
is.close();
}
catch(Exception e){
mDownloadIsError = true;
e.printStackTrace();
}
}
return UPDATE_FAIL_WITH_FAIL_UNKONWN;
}
HttpURLConnection 下载代码的更多相关文章
- PHP 文件限速下载代码
php 文件限速下载代码 <?php include("DBDA.class.php"); $db = new DBDA(); $bs = $_SERVER["QU ...
- 使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法
使用HttpURLConnection下载文件时经常会出现 java.io.FileNotFoundException文件找不到异常,下面介绍下解决办法 首先设置tomcat对get数据的编码:con ...
- 从git上下载代码并导入eclipse
主要分为两步: 1.先从git下载代码到本地git仓库 2.eclipse import导入存在的maven项目
- axis1,xfire,jUnit 测试案列+开Web Service开发指南+axis1.jar下载 代码
axis1,xfire,jUnit 测试案列+Web Service开发指南(中).pdf+axis1.jar下载 代码 项目和资源文档+jar 下载:http://download.csdn. ...
- ubuntu svn下载代码出错
ubuntu svn下载代码出错: svn: OPTIONS of 'https://server.domain.local/svn/repo': SSL handshake failed: SSL ...
- gerrit设置非小组成员禁止下载代码
对gerrit有所了解的同学,都知道gerrit 是我们常用的一个来做代码审核的工具,其中的权限管理,是一个非常重要的环节,关于每个权限的使用范围,可以参考博客https://blog.csdn.ne ...
- sublime text3:下载代码格式化插件和汉化插件
1.从官网下载sublime text3 2.下载插件工具 A.使用Ctrl+`(Esc键下方)快捷键或者通过View->Show Console菜单打开命令行 将以下代码复制后粘贴,然后按En ...
- python之实现ftp上传下载代码(含错误处理)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之实现ftp上传下载代码(含错误处理) #http://www.cnblogs.com/kait ...
- python之模块ftplib(实现ftp上传下载代码)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...
随机推荐
- C#上传图片同时生成缩略图,控制图片上传大小。
#region 上传图片生成缩略图 /// <summary> /// 上传图片 /// </summary> /// <param name="sender& ...
- 学习MVC框架之一
一.MVC的概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的 ...
- Invalid content was found starting with element 'taglib'”
今天在使用struts-menu制作菜单,在web.xml中写入 <taglib> <taglib-uri>/WEB-INF/struts-menu.tld</ ...
- oc随笔三:多态
多态使用总结: (1)没有继承就没有多态 (2)代码的体现:父类类型的指针指向子类对象 (3)好处:如果函数方法参数中使用的是父类类型,则可以传入父类和子类对象,而不用再去定义多个函数来和相应的类进行 ...
- cellForRowAtIndexPath方法不执行的那些坑
今天用到了uitableview,是xib形式的.不过cellForRowAtIndexPath方法死活不执行,检查了返回的row数量,section的数量,数据源,代理都没问题,不过cellForR ...
- OD学习笔记10:一个VB程序的加密和解密思路
前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程 ...
- VC++ try catch (转)
VC++ try catch (转) 以前都是用try{} catch(-){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的.例如下面的代 ...
- JAVA 对象引用,以及对象赋值(转)
原文链接:http://zwmf.iteye.com/blog/1738574 关键字: java对象 引用 Java对象及其引用 关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里 ...
- Go学习笔记(二):编写 HelloWorld 程序
//Hello.go代码 package main import "fmt" func main(){ fmt.Printf("Hello, world!This is ...
- slf4j教程
slf4j只是一个门面(facet),它不包含具体的实现,而是将一些log4j,java.logging等实现包装成统一的接口.借用下图展示了常用日志文件的关系: 通过上面的图,可以简单的理清关系! ...