通过URLHttpConnection方式连接网络步骤,获取位图为例
要注意的是:访问网络不能直接放在主线程,要放在另外一个线程里面,如果放在主线程会报android.os.NetworkOnMainThreadException错误
1 public Bitmap getImageFromNet(String uri) {
HttpURLConnection conn = null; try {
// 1.首先将地址转换为Uri
// Uri net_uri = Uri.parse(uri); //这种方式是错误的
URL url = new URL(uri); // 2. 获取网络连接
conn = (HttpURLConnection) url.openConnection(); // 这个地方要转换一次,转换为你获取图片的协议连接 // 3. 设置请求的一些常用的参数
conn.setConnectTimeout(30000);// 设置超时
conn.setDoInput(true); // 设置请求可以放服务器写入数据
conn.setReadTimeout(30000); // 设置连接去读取数据的超时时间
// 4.真正请求图片,然后把从网络上请求到的二进制流保存到了inputStream里面
conn.connect(); // 5.确保链接成功,获取inputStream流
if (conn.getResponseCode() == 200) {
InputStream in = conn.getInputStream();
// 6. BitMap的图片工厂,创建出一个图片
Bitmap bitmap = BitmapFactory.decodeStream(in);
return bitmap;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 7. 关闭连接
if (null != conn) {
conn.disconnect();
}
} return null;
}
根据不同的目的,变化的是第6步,通过获取的流来不同的操作达成目的
通过URLHttpConnection方式连接网络步骤,获取位图为例的更多相关文章
- vmvare使用桥接和NAT方式连接网络
一.背景:本着学以致用的心态,试着最小化安装Centos7.4.安装centos主要目的有两个:共享文件(samba).安装postgresql数据库 本打算使用内网(不联网)的方式安装samba和p ...
- Hyper-v 虚拟机使用NAT方式连接网络
最近因为搞docker的原因,卸掉了vb和vm,用上了hyper. 其实一直挺喜欢hyper-v的,但是一直都受虚拟网络的影响--hyper-v创建不了vm和vb使用的那种NAT连接方式. 默认使用外 ...
- 转:在虚拟机中用NAT方式连接网络
1.安装VMware Workstation .在安装过VMware Workstation软件后,会在本地连接中,多了两个虚拟网卡,一个是 VMware Network Adapter for VM ...
- VM12中CentOS7以NAT方式连接网络的方法
解决问题:centos网络连不上,连不上主机,ifconfig等命令不能用(配完有网了,安装上就好了)等问题 前提:安装vm12,centos7(最小安装) 注意:以下以192开头的,你都要替换成自 ...
- 通过HttpClient方式连接网络
xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...
- 系统编程-网络-tcp客户端服务器编程模型(续)、连接断开、获取连接状态场景
相关博文: 系统编程-网络-tcp客户端服务器编程模型.socket.htons.inet_ntop等各API详解.使用telnet测试基本服务器功能 接着该上篇博文,咱们继续,首先,为了内容的完整性 ...
- Js navigator.onLine 获取设备是否可以上网、连接网络
http://zccst.iteye.com/blog/2194229 获取用户的联网状态 if (navigator && navigator.onLine === false) { ...
- Windows XPSP3通过网络级身份验证方式连接Windows Server 2008远程桌面
远程桌面大大方便了大家的日常管理工作,Windows Server 2008同样秉承这一优秀特性,并引入网络级身份验证(NLA)作为远程桌面连接的默认身份验证方式. 网络级身份验证 (NLA) 是一种 ...
- 【Android-NetWork】 判断是否连接网络,判断网络连接方式
如何判断Android是否连接网络? Java代码: ConnectivityManager conn = (ConnectivityManager) getSystemService(Activit ...
随机推荐
- C Primer Plus(第五版)5
第5章 运算符,表达式和语句 5.1 循环简单 程序清单 5.1 显示了一个示例程序,该程序做了一点算术运算来计算穿 9 码鞋的脚用英寸表示的长度.为了增加你对循环的理解,程序的第一版演示了不使用循环 ...
- Linux下网络编程学习杂记
1.TCP/IP协议的体系结构包含四层:应用层(负责应用程序的网络服务,通过端口号识别各个不同的进程)->传输层(传输控制层协议TCP.用户数据报协议UDP.互联网控制消息协议ICMP)-> ...
- (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
问题描述:在用vs生成MVC时若使用Internet应用程序为模版,项目建好后重新编译下无法通过,弹出错误: 解决方案:问题出来后,询问了身边很多人都是一头雾水,于是乎各种谷歌和百度,还好功夫不负有心 ...
- 打开10.10.3上SSD的TRIM-黑苹果之路
对SSD没有研究,同事提出苹果对非官方的SSD不开启TRIM,上网度了一把,对TRIM不明觉厉. 一.TRIM是怎么回事:http://bbs.feng.com/read-htm-tid-187088 ...
- 使用UI Automation实现自动化测试 --微软提供的控件Pattern
微软提供的控件Pattern System.Windows.Automation 命名空间 System.Windows.Automation.BasePattern 为控件模式类提供基实现 Syst ...
- 【Struts 1】Struts1的基本原理和简介
备注:这里介绍的是Struts1的内容,Struts2的内容,会在后续的博客的予以说明! 一.什么是Struts struts的目标是提供一个开发web应用的开源框架,Struts鼓励基于Model2 ...
- java swing 使用按钮关闭窗口
目的是给JButton添加点击操作,使指定JFrame窗口关闭. 网上不少说法是采用frame.dispose();的方法 但是采用frame.dispose();并没有使添加在frame上的wind ...
- jqmobi 转换语言
当第一次打开APP时,检测手机默认的语言,设置APP的语言跟手机默认一样:当点击了APP里面的设置语言的按钮,存储当前设置的语言 :关闭APP:再一次打开APP时,检测存储在APP里面的语言,转换语言 ...
- Oracle笔记 七、PL/SQL 异常处理
--异常处理 declare sNum number := 0; begin sNum := 5 / sNum; dbms_output.put_line(sNum); exception when ...
- IE6-IE9兼容性问题列表及解决办法总结
IE6-IE9兼容性问题列表及解决办法总结 概述 第一章:HTML. 3 第一节:IE7-IE8更新... 31.如果缺少结束标记的 P 元素后跟 TABLE.FORM.NOFRAMES 或 NOSC ...