Android-通过URL获取网络资源 Json 字符串
来源:互联网 发布:mac mini win10 编辑:程序博客网 时间:2024/06/03 21:02
1、先在AndroidManifest.xml中注册加入访问因特网服务的权限:
<uses-permission android:name="android.permission.INTERNET" />
(若不加入,则会出现permission denied异常)
2、代码如下:
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(),"UTF-8");
(如果读取的是.txt等文件是UTF-8格式的,就需要对数据进行专门的转换)
<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(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(),"UTF-8");
(如果读取的是.txt等文件是UTF-8格式的,就需要对数据进行专门的转换)
- Android-通过URL获取网络资源 Json 字符串
- Android通过URL获取网络资源
- Android-通过URL获取网络资源
- Android网络开发:通过URL获取网络资源
- 通过URL获取网络资源
- 通过URL获取网络资源
- 通过URL请求获取网络资源
- 通过URL获取并下载网络资源
- Android 通过 HttpClient 获取网络资源
- android之通过URL来获取网络资源并下载资源简单实例
- Android URL访问网络资源,通过URL加载网络图片
- URL 获取网络资源
- 使用url获取网络资源
- 通过HTTP获取网络资源
- 通过HTTP获取网络资源
- Android开发18——获取网络资源之json数据
- 通过url获取Json格式的数据
- java后台通过url获取json数据
- <stm32>用systick计数器做delay函数易出现的错误一则
- Java 访问权限修饰符
- join
- GCC生成汇编文件解析
- 设置mysql最大连接数的方法
- Android-通过URL获取网络资源 Json 字符串
- 今天的面试题--操作ArrayList。
- C++中临时对象的产生与优化
- c++ 初学 派生类到基类转换的可访问性
- css选择器详解
- 日志相关
- 20-可变参数
- 【goldengate】表列数超过33个
- android:minSdkVersion 之我见