使用URL访问网络资源

URL对象代表统一的资源定位器,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询。就通常情况而言,URL可以由协议名、主机、端口和资源组成,即满足如下格式:
protocol://host:port/resourceName
例如如下的URL地址:
http://www.baidu.com/
注意: JDK中还提供了一个URI类,其实例代表一个统一资源标志符,java的URI不能用于定位任何资源,它的唯一作用就是解析。与此对应的,URL则包含一个可打开到达该资源的输入流,因此我们可以将URL理解成URI的特例。

URL类提供了多个构造器用于创建URL对象,一旦获得了URL对象之后,就可以调用如下方法来访问该URL对应的资源了。
★String getFile():获取此URL的资源名。
★String getHost():获取此URL的主机名。
★String getPath():获取此URL的路径部分。
★Int getPort():获取此URL的端口号。
★String getProtocol():获取此URL的协议名称。
★String getQuery():获取此URL的查询字符串部分。
★URLConnection openConnection():返回一个URLConnection对象,它表示到URL所引用的远程对象的连接。
★InputStream openStream():打开与此URL的连接,并返回一个用于读取该URL资源的InputStream。

一、使用URL读取网络资源
URL对象中前面几个方法都非常容易理解,而该对象提供的openStream()可以读取该URL资源的InputStream,通过该方法可以非常方便的读取远程资源。

下面的程序示范了如何通过URL类读取远程资源。
public class MainActivity extends Activity
{
	ImageView show;
	// 代表从网络下载得到的图片
	Bitmap bitmap;
	Handler handler = new Handler()
	{
		@Override
		public void handleMessage(Message msg)
		{
			if(msg.what == 0x123)
			{
				// 使用ImageView显示该图片
				show.setImageBitmap(bitmap);
			}
		}
	};
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.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 &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值