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"");
// 打开URL链接
URLConnection ucon = myURL.openConnection();
// 使用InputStream,从URLConnection读取数据
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
// 用ByteArrayBuffer缓存
ByteArrayBuffer baf = new ByteArrayBuffer();
int current = ;
while ((current = bis.read()) != -) {
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();
int current=;
while((current=bis.read())!=-)
{
baf.append((byte)current);
}
5)由于读到的数据只是字节流,无法直接显示到屏幕上,所以得在显示之前将字节流转换为可读取的字符串:
myString=EncodingUtils.getString(baf.toByteArray(),"UTF-");
(如果读取的是.txt等文件是UTF-8格式的,就需要对数据进行专门的转换)
Android 通过URL获取网络资源的更多相关文章
- Android开发16——获取网络资源之基础应用
一.项目背景在Android开发中有一项非常广泛的应用:Android项目获取另一个web项目的资源或者返回的数据.本博文介绍了获取另一个web项目的资源.有一个web项目,在其WebRoot文件夹下 ...
- Android 使用URL访问网络资源
1.介绍 2.使用方法 3.java后台代码 package com.lucky.test51url; import android.annotation.SuppressLint; import a ...
- 【Android Demo】获取指定网页的页面源代码
1.直接上效果图 2.代码 主要就是工具类HtmlService.java: import java.io.ByteArrayOutputStream; import java.io.InputStr ...
- 自己写http获取网络资源和解析json数据
虽然github上有很多开源的,方便的jar报,用起来也很方便,但我们也需要了解其中的原理,如何自己不用第三方jar包来获取网络资源 主要代码如下: 因为联网是耗时的操作,所以需要另开一个线程来执行 ...
- Android 通过网络获取图片的源码
将开发过程中经常用到的内容做个备份,如下的资料是关于Android 通过网络获取图片的的内容. package com.netimg; import android.app.Activity;impo ...
- 旧瓶新酒-获取网络资源即爬取下载页面内容(图片、html、css、js等)
这个java获取网络资源以前也写过不少 最近用到又重新写了一个,apache.commons.io中的例子就非常好,但是无法对请求进行详细设置 于是大部分照搬,局部替换以设置请求头 如需更加复杂的设置 ...
- 解析URL 获取某一个参数值
/** * 解析URL 获取某一个参数值 * * @param name 需要获取的字段 * @param webaddress URL * * @return 返回的参数对应的 value */ - ...
- iOS根据Url 获取图片尺寸
iOS根据Url 获取图片尺寸 // 根据图片url获取图片尺寸 +(CGSize)getImageSizeWithURL:(id)imageURL { NSURL* URL = nil; if([i ...
- iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html
iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html 前言 這裡只是講一個故事,一個發生在我身上的真實的故事.曾經,我以為搞加 ...
随机推荐
- Java的GC
垃圾收集 在探究Jvm的过程中,有两个点特别需要关注,一是:内存的使用,分配策略,而这一点是在前一篇博客已经介绍过了. 二是:内存的回收.也就是这一篇博客所要探究的关键点. 内存回收需要关注的几个点: ...
- 【hdu6121】 Build a tree 简单数学题
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6121 我好像推得挺久的诶..... 题目大意:给你一棵有$n$个点的树,根节点为$0$,对于其余节点 ...
- TestNG的常用注解
@BeforeSuite:表示此注解的方法会在当前测试集合(Suite)中的任一测试用例开始运行之前执行 @AfterSuite:表示此注解的方法会在当前测试集合(Suite)中的所有测试程序运行结束 ...
- java数据结构之二叉树的定义和递归实现
定义最多有两棵子树的有序树,称为二叉树.二叉树是一种特殊的树.递归定义:二叉树是n(n>=0)个有限结点构成的集合.N=0称为空二叉树:n>0的二叉树由一个根结点和两互不相交的,分别称为左 ...
- Centos调整时间时区
一台VPS的时间出错,使用常规手段修改均失败.提示hwclock failed : ntpdate stdtime.sinica.edu.tw 如果你的 VPS 提示没有 ntpdate 这个命令,可 ...
- 数据库 -- Oracle常用命令
1.查询账号状态 SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS; 解锁账号 ALTER USER scott ACCOUNT UNLOCK 2.创建表空 ...
- Python装饰器之 property()
1. 何为装饰器? 官方定义:装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数 ...
- [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)
本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类 —— 微信小程序实战商城 ...
- (在数据库中调用webservices。)SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
--开启 Ole Automation Procedures sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_config ...
- asp查找</td>标记时遇到以外的文件结尾
正确的<td></td> 错误的<td> 没有写完整