`
vinny_w
  • 浏览: 56029 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android-通过URL获取网络资源

阅读更多
1、先在AndroidManifest.xml中注册加入访问因特网服务的权限:
<uses-permission android:name="android.permission.INTERNET" />
(若不加入,则会出现permission denied异常)

2、代码如下:
package vip.test.HttpGet;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import org.apache.http.util.ByteArrayBuffer;
import org.apache.http.util.EncodingUtils;
import vip.test.HttpGet.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HttpGet extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		TextView tv = new TextView(this);
		String myString = null;
		try {
			// 定义获取文件内容的URL
			URL myURL = new URL(
					"HTTP://www.baidu.com/hello.txt&quot");
			// 打开URL链接
			URLConnection ucon = myURL.openConnection();
			// 使用InputStream,从URLConnection读取数据
			InputStream is = ucon.getInputStream();
			BufferedInputStream bis = new BufferedInputStream(is);
			// 用ByteArrayBuffer缓存
			ByteArrayBuffer baf = new ByteArrayBuffer(50);
			int current = 0;
			while ((current = bis.read()) != -1) {
				baf.append((byte) current);
			}
			// 将缓存的内容转化为String,用UTF-8编码
			myString = EncodingUtils.getString(baf.toByteArray(), "UTF-8");
		} catch (Exception e) {
			myString = e.getMessage();
		}
		// 设置屏幕显示
		tv.setText(myString);
		this.setContentView(tv);
	}
}


3、代码解释:

1)实例URL类:myURL,表示要获取内容的网址:
URL myURL=new URL(HTTP://www.baidu.com/hello.txt);

2)实例URLConnection类,表示一个打开的网络连接ucon:
URLConnection ucon=myURL.openConnection();

3)用字节流的形式表示从网络上读到的数据:
InputStream is=ucon.getInputStream();
   为避免频繁读取字节流,提高读取效率,用BufferedInputStream缓存读到的字节流
InputStream is=ucon.getInputStream();
BufferedInputStream bis=new BufferedInputStream(is);

4)用read方法读入网络数据:
ByteArrayBuffer baf=new ByteArrayBuffer(50);
int current=0;
while((current=bis.read())!=-1)
{
baf.append((byte)current);
}

5)由于读到的数据只是字节流,无法直接显示到屏幕上,所以得在显示之前将字节流转换为可读取的字符串:
myString=EncodingUtils.getString(baf.toByteArray(),&quot;UTF-8&quot;);
(如果读取的是.txt等文件是UTF-8格式的,就需要对数据进行专门的转换)
分享到:
评论
2 楼 xingjiu1 2014-10-22  
                  
1 楼 satanrad 2013-09-04  
哈哈!这个例子很好对我很有用顶你一下吧。

相关推荐

    Android通过URL获取网络资源.doc

    "Android 通过 URL 获取网络资源" Android 通过 URL 获取网络资源是指 Android 应用程序通过 URL 访问网络资源的过程。这个过程需要在 AndroidManifest.xml 文件中加入访问因特网服务的权限,否则将出现 permission...

    android安卓通过url获取网络图片并显示在imageview中

    总结,通过URL获取网络图片并在Android应用中显示,主要涉及以下几个知识点: 1. 添加第三方库Glide及其依赖。 2. 配置AndroidManifest.xml以允许网络访问。 3. 使用Glide的API加载图片到ImageView。 4. 可选地,...

    离线下载android-sdk地址获取工具

    总结来说,离线下载Android SDK地址获取工具是一种实用的开发辅助工具,通过解析`android-sdk-manager`的日志和XML文件,结合迅雷的下载功能,帮助开发者在无网或网络环境不佳的情况下,也能顺利获取并安装Android ...

    Android移动开发-使用URL读取网络资源的实现

    URL(Uniform Resource Locator)是统一资源定位器,它是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的...

    android获取网络资源

    在Android平台上,获取网络资源是开发过程中不可或缺的一部分。这涵盖了从加载网页到下载图片、音频、视频等各类数据。在本篇文章中,我们将深入探讨如何在Android应用中实现这一功能,主要关注如何获取网络上的图像...

    Android通过URL访问网络资源工具包

    以上就是“Android通过URL访问网络资源工具包”的主要知识点,理解并掌握这些内容对于开发能有效访问网络的Android应用至关重要。在实际项目中,开发者可以根据需求扩展`HttpUtil`,增加更多的网络请求方法,如PUT、...

    ksoap2-android-assembly-2.6.0-jar-with-dependencies.rar

    ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar是一个重要的库文件,它是Android开发者调用Web服务接口的必备工具,尤其适用于那些希望简化网络通信的开发者。 kSOAP2是一个轻量级的开源项目,它提供了...

    spring-android-samples

    《Spring for Android实战案例解析》 在Android开发中,Spring框架的应用越来越广泛,...通过学习和实践这些示例,开发者不仅可以掌握Spring框架在移动开发中的使用,还能提升Android应用的网络通信和数据处理能力。

    android-获取网上图片demo

    在Android开发中,获取网络上的图片是一项常见的任务,特别是在构建应用程序时,比如新闻阅读、社交应用或者电商应用等。这个“android-获取网上图片demo”应该是提供了一个示例,展示了如何在Android中从互联网下载...

    android-gif-drawable 支持gif显示DEMO

    - 发起一个GET请求,获取GIF文件的URL,如`AsyncHttpClient client = new AsyncHttpClient(); client.get("http://example.com/your.gif", new AsyncHttpResponseHandler() {...});` - 在回调方法中,接收到响应后...

    Android如何获得网络资源的大小

    ### Android如何获得网络资源的大小 在Android应用开发过程中,我们常常需要下载各种类型...通过上述方法,开发者可以在Android应用程序中有效地获取网络资源的大小,这对于优化下载策略、提高用户体验具有重要意义。

    Android-FastImageSize是一个不需要完全下载就可以快速获得网络图片宽高尺寸信息的androidlib

    在Android应用开发中,有效地管理和显示网络图片是常见的需求,特别是在资源有限的移动设备上。`Android-FastImageSize`库就是为了满足这一需求而设计的,它允许开发者在不完全下载图片的情况下,快速获取到网络图片...

    android获取网络资源demo

    总的来说,“android获取网络资源demo”涉及的关键技术包括URL的构造、HttpURLConnection的使用、网络权限的声明以及异步处理网络请求。这些知识构成了Android应用与服务器交互的基础,是每个Android开发者都应掌握...

    Android-Universal-Image-Loader

    4. **ImageDownloader**:负责从网络或本地获取原始图片数据。 5. **ImageLoaderConfiguration**:用于构建和配置ImageLoader实例。 四、使用方法 使用UIL通常涉及以下步骤: 1. 创建`ImageLoaderConfiguration`,...

    Android-Networking-1

    - **NIST原子时间示例**:展示如何通过网络请求获取美国国家标准与技术研究院(NIST)提供的原子时间数据。 - **简单的字符串格式化与解析**:提供基本的字符串处理技巧,帮助理解网络数据的结构。 - **FTP欢迎消息...

    Android--开发--网络视频播放器(完整可运行).rar

    2. **HTTP或HTTPS流媒体播放**:网络视频通常通过HTTP或HTTPS协议传输,开发者需要理解如何设置URL来获取视频流,并配置MediaPlayer进行播放。 3. **SurfaceView与TextureView**:这两个是Android用于显示视频画面...

    android的网络应用初级篇-通过WEB获取数据.doc

    通过`URL`类创建一个URL对象,该对象表示要访问的网络资源。例如,`URL myURL = new URL("http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt")`指向一个文本文件。然后,使用`openConnection()...

    Android代码-通过httpclient获取到JSON数据展示到ListView.zip

    10. **更多资源**:`更多源码打包下载.url`可能指向一个集合更多Android开发资源的链接,供学习者进一步探索和实践。 综上所述,这个压缩包的示例项目涵盖了Android网络编程、JSON解析、ListView数据绑定等多个重要...

    android 获取服务器上资源(图片,文本)

    在Android开发中,获取...通过这种方式,你可以灵活地获取和处理各种类型的网络资源,包括HTML和图片。当然,随着Android开发的不断进步,还有更多高级的网络库可以帮助简化这个过程,但理解底层原理始终是至关重要的。

    android 获取网络图片

    总结来说,Android中获取网络图片涉及到网络请求、Bitmap解码、内存管理和用户体验优化。使用现代库如Glide和Picasso可以简化这个过程,同时提供更好的性能和功能。在实际开发中,应根据项目需求选择最适合的方法。

Global site tag (gtag.js) - Google Analytics