Android用HTTP下载报错“android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork”
2015-07-22 16:04
549 查看
此错误是因为Android不能在主线程中访问网络导致,可将访问网络代码另启线程运行:
Runnable r = new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { URL url = new URL(strURL); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); String path = "file"; String fileName = fileNa + "." + fileEx; OutputStream output = null; /*获取SD卡路径*/ String SDCard = "/mnt/sdcard/HTTPget"; //Environment.getExternalStorageDirectory()+""; System.out.println(SDCard); String pathName = SDCard + "/" + path + "/" + fileName; //文件保存路径 File file = new File(pathName); InputStream input = conn.getInputStream(); if(file.exists()) { System.out.println("file exits"); return; } else { String dir = SDCard + "/" + path; new File(dir).mkdirs(); //创建文件夹 file.createNewFile(); //创建文件 output = new FileOutputStream(file); byte[] buffer = new byte[4096]; int len; while((len = input.read(buffer)) != -1) { output.write(buffer, 0, len); } output.flush(); } } catch (MalformedURLException e) { // TODO: handle exception e.printStackTrace(); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } } }; new Thread(r).start(); }
相关文章推荐
- http 的get 与 post 的区别
- 通过AFNetworking下载网络闪屏用的图片并存储到本地同时获取header头相关信息
- AFNetworking下载网络相关的附件(音视频)等到本地app包中做离线来提高用户体验
- 网络扫描工具nc&nmap
- http状态码 200 304 404 503等
- IP、ICMP、UDP、TCP 校验和算法
- TCP状态变迁图
- 使用java读取url网络文件
- windows编程--网络编程学习--winsock编程(2)
- Android访问网络 使用HttpURLConnection还是HttpClient?
- Andorid Volley网络请求详解
- 计算机网络层介绍
- Can not find the tag library descriptor for "http://struts.apache.org/tags-bean
- TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器
- TCP/IP详解学习笔记(12)-TCP的超时与重传
- 简单的http客户端
- UNIX网络编程卷一:第二章 传输层:TCP、UDP
- TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
- TCP/IP详解学习笔记(10)-TCP连接的建立与中止
- TCP/IP详解学习笔记(9)-TCP协议概述