Android---52---使用URl访问网络资源

URL:Uniform Resource Locator 统一资源定位器

通常情况而言,URl可以有协议名、主机、端口和资源组成,即满足以下格式:

protocol://host:port/resourceName

例如:

http://www.baidu.com/index.php

Public Constructors 构造方法:

 URL(String spec)
Creates a new URL instance by parsing the string spec. 

 URL(URL context, String spec)
Creates a new URL to the specified resource spec. 

 URL(URL context, String spec, URLStreamHandler handler)
Creates a new URL to the specified resource spec. 

 URL(String protocol, String host, String file)
Creates a new URL instance using the given arguments. 

 URL(String protocol, String host, int port, String file)
Creates a new URL instance using the given arguments. 

 URL(String protocol, String host, int port, String file, URLStreamHandler handler)
Creates a new URL instance using the given arguments.

常用方法:

String getFile ():获取此URL的资源名

String getHost(): 获取主机名

String getPath ():获取路径

int getPort ():获取端口号

String getProtocol ():获取协议名称

String getQuery():获取此URl的查询字符串部分

URLConnection openConnection():返回一个URLConnection对象,它表示到URl所引用的远程对象的连接

InputStream openStream():打开与此URL的连接,并返回一个用于读取该URL资源的输入流

读取网络资源:

一张图片:

/*

http://www.crazyit.org/attachments/month_1008/20100812_7763e970f822325bfb019ELQVym8tW3A.png

*/

两个功能:

1.以上面网址为参数创建URL对象,获得该对象资源的InputStream,使用BitmapFactory.decodeStream()方法解析出图片 并显示

2.将图片下载下来。

public class MainActivity extends Activity {

	ImageView show;
	Bitmap bitmap;

	Handler handler = new Handler() {
		public void handleMessage(android.os.Message msg) {
			if (msg.what == 0x123) {
				// 使用ImageView显示该图片
				show.setImageBitmap(bitmap);
			}
		};
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		show = (ImageView) findViewById(R.id.show);

		new Thread() {
			public void run() {
				try {
					// 定义一个URL对象
					URL url = new URL("http://www.crazyit.org/"
							+ "attachments/month_1008/20100812_7763e970f"
							+ "822325bfb019ELQVym8tW3A.png");
					// 打开该URL对应的资源的输入流
					InputStream is = url.openStream();
					// 从InputStream中解析图片
					bitmap = BitmapFactory.decodeStream(is);
					// 发送消息 通知UI组件显示该图片
					handler.sendEmptyMessage(0x123);
					is.close();

					//下载图片

					// 再次打开URL对应资源的输入流,创建图片对象
					is = url.openStream();
					// 打开手机文件对应的输出流
					OutputStream os = openFileOutput("crazyit.png",
							MODE_WORLD_READABLE);
					byte buff[] = new byte[1024];
					int hasRead = 0;
					// 将图片下载到本地
					while ((hasRead = is.read(buff)) > 0) {
						os.write(buff, 0, hasRead);
					}
					is.close();
					os.close();

				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			};
		}.start();
	}
}
时间: 2024-10-23 14:28:28

Android---52---使用URl访问网络资源的相关文章

Android学习--使用url访问网络资源

实例:使用url从服务器端下载图片 核心代码: package com.example.xiaocool.urltest; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; import android.support.v7.app.ActionBarActivity; import android

Android开发之使用URL访问网络资源

URL (UniformResource Locator)对象代表统一资源定位器,它是指向互联网"资源"的指针.资源可以是简单的文件或目录,也可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询.通常情况而言,URL可以由协议名.主机.端口和资源组成.即满足如下格式: protocol://host:port/resourceName URL类提供了多个构造方法用于创建URL对象,一旦获得了 URL对象之后,可以调用如下常用方法来访问该URL对应的资源: 1) StringgetF

Android 使用URL访问网络资源

1.介绍 2.使用方法 3.java后台代码 package com.lucky.test51url; import android.annotation.SuppressLint; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; import android.support.v7.app.App

android中使用URL读取网络资源

URL(Uniform Resource Locator)对象代表统一资源定位器,它是指向互联网"资源"的指针. 使用URL读取网络资源: import java.io.InputStream; import java.net.URL; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle;

使用URL访问网络资源

URL(Uniform  Resource  Locator)对象代表统一资源定位器,它是指向互联网“资源”的指针.资源可以是简单的文件或目录,也可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询.通常情况而言,URL可以由协议名.主机.端口和资源组成,既满足如下格式: protocal://host:port/resourceName 例如如下的URL地址: http://www.baidu.com JDK中还提供了一个URI(Uniform  Resource  Identifiers

Android开发之使用HTTP访问网络资源

使用HTTP访问网络资源 前面介绍了 URLConnection己经可以非常方便地与指定站点交换信息,URLConnection还有一个子类:HttpURLConnection,HttpURLConnection 在 LIRLConnection的基础上做了进一步改进,增加了一些用于操作http资源的便捷方法. 1.使用HttpURLConnection HttpURLConnection继承了URLConnection,因此也可用于向指定网站发送GET请求 POST请求.它在URLConnec

android-使用URL获取网络资源

今日使用URL获取网络资源时遇到问题记录一下: 1. android4.0 以后,不可以在主线程中请求网络资源 访问网络资源,必须新起一个线程. 2.哪个线程创建的view,哪个线程才有权限操作它 Only the original thread that created a view hiberarchy can touch tis views 获取到网络资源之后,只可以回到原来的线程中将资源放入android的view中. android-使用URL获取网络资源

Java 网络编程(三) 创建和使用URL访问网络上的资源

链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951877.html 创建和使用URL访问网络上的资源 URL(Uniform Resource Locator)是统一资源定位符的简称,它表示Internet上某一资源的地址. 通过URL我们可以访问Internet上的各种网络资源,比如最常见的WWW, FTP站点.浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源. 在目前使用最为广泛的TCP/IP中对于URL中主机名

ThinkPHP第二课 框架MVC目录和URL访问方式

第二课 框架MVC目录和URL访问方式 1.说明: ThinkPHP是基于MVC的框架,认识框架目录将更好的实现分层,掌握ThinkPHP.URL访问就是访问框架的控制器(MVC中的C),共有四种方式,框架中的C起到分模块的作用. url的4种访问方式: 1.PATHINFO 模式 -- 重点!!!!!! http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 2.普通模式 http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2