Android查看网页源码

1 布局

<ScrollView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" >
      <TextView
          android:id="@+id/result"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
        />
</ScrollView>

在ScrollView控件里嵌入一个TextView即可,其带有一个滚动条.

2利用网页的路径和编码方式,得到网页的字节数组

public class GetPageResource {
      public static String getHtml(String path,String encoding) throws Exception{
    	  HttpURLConnection connection=(HttpURLConnection) new URL(path).openConnection();
    	  connection.setConnectTimeout(5000);
    	  connection.setRequestMethod("POST");
    	 if(connection.getResponseCode()==200){
    		 InputStream inputStream=connection.getInputStream();
    		 byte [] imageData=GetResource.readResource(inputStream);
    		 return new String(imageData,encoding);
    	 }
    	 return null;
      }
}

分析:
(1)关于网页的编码方式,可以利用HttpWatch工具来获取
(2)利用URL得到HttpURLConnection connection这样便于资源建立起了联系,且设置connection的属性值
(3)利用HttpURLConnection connection得到输入流.即可以这么想:此时的网页已经保存到了此输入流inputStream里
(4)将在输入流里的网页数据输出到字节数组里面.即byte [] imageData=GetResource.readResource(inputStream).如下
readResource(inputStream)方法如下:

public class GetResource {
    public static byte[] readResource(InputStream inputStream) throws Exception{
    	ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
    	byte [] array=new byte[1024];
    	int len=0;
    	while( (len=inputStream.read(array))!=-1){
    		   outputStream.write(array,0,len);
    	}
    	inputStream.close();
    	outputStream.close();

    	return outputStream.toByteArray();
    }

分析:
(1)没有方法可以把输入流里的数据直接放到字节数组里(查阅API即知),而是要利用ByteArrayOutputStream outputStream
   把在输入流自己把自己的数据读(read())到一个字节数组里面,即inputStream.read(buffer),然后数组里面的数据放入
   输出流ByteArrayOutputStream outputStream里面,即outputStream.write(buffer,0,len);
(2)待数据全部转移到输入流outputStream里面,此时就可以把输出流的数据全部转换为字节数组,即outputStream.toByteArray();
(3)在此例子就很好体现了输入流和输出流的使用.

 

在输入流相应的API中都是把输入流读取到一个数组中,或者只读取一个字节,或者读取一行
如FileInputStream类中的方法:
public int read(byte[] b,int off,int len)从此输入流中将最多 len 个字节的数据读入一个字节数组中
public int read()从此输入流中读取一个数据字节
如在BufferedReader类中的方法:
public String readLine() 读取一个文本行.返回值:包含该行内容的字符串

在输出流相应的API中都把是字节数组写入此输出流,或者只把数组中的某个位置的数据写入输出流
如ByteArrayOutputStream类的方法中:
public void write(byte[] b,int off,int len)将指定字节数组中从偏移量off开始的len个字节写入此字节数组输出流
public void write(int b)将指定的字节写入此字节数组输出流
然后我们可以发现:
(1)可以把输出流里的数据转换为字节数组
如ByteArrayOutputStream类的方法中:
public byte[] toByteArray():创建一个新分配的字节数组。其大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中。
(2)可以把输出流里的数据转换为字符串
如ByteArrayOutputStream类的方法中:
public String toString():将缓冲区的内容转换为字符串,根据平台的默认字符编码将字节转换成字符。

 

时间: 2024-09-17 04:16:46

Android查看网页源码的相关文章

Android通过访问网页查看网页源码实例详解

Android通过访问网页查看网页源码 1.添加网络权限 <!--访问网络的权限--> <uses-permission android:name="android.permission.INTERNET"/> 2.获取网络中网页的数据 /** * 获取网页HTML源代码 * @param path 网页路径 */ public static String getHtml(String path) throws Exception { URL url=new U

android获取网页源码问题

问题描述 android获取网页源码问题 以下是我从网上找的获取网页源码的 代码 所有包都已经正常导入 但是编译后 程序一运行就崩溃 求大神指点import 略; /** @author Jasonzhou @since 2013-03-21 @功能 读取网页内容 @说明 获取网页的全部代码后使用jsuop进行处理, 以便得到想要的内容**/ public class MainActivity extends Activity { public String url = ""http:

网页 浏览器-查看网页源码不完整的问题

问题描述 查看网页源码不完整的问题 图灵社区上的一本书:http://www.ituring.com.cn/book/682 "查看网页源代码"时找不到"目录"标签页的对应代码,而"审查元素"时却可以看到对应的代码,我用的是谷歌浏览器,请问这是什么问题?

在 Firefox 里通过外部编辑器查看网页源码

  在 Firefox 浏览器中,通过右键.菜单栏功能项或快捷键(cmd + U)就可以查看的网页源码.不过弹出的仅仅是个浏览窗口,想要进行编辑等进一步操作的话就得靠复制粘贴大法了.有没有这样一个办法,能够让 Firefox 的查看源代码功能直接调用外部编辑器来进行操作呢? 在 Firefox 地址栏输入 about:config,然后在过滤器中搜索 source.editor; 双击 view_source.editor.external 将其值设置为 true; 双击 view_source

android查看绑定源码

  当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是已经写好的方法和控件,可是我们只是在搬来使用,不知道它的原理,它是如何被实现的.android系统是开源的,所以谷歌官方在每发布一个版本的时候都会放出它对应的API源码的,让我们可以深入了解android的API实现过程,这就是开源的魅力.如果我们从API源码的角度去了解了开发过程,那样对于作为开发人员的我们,便会对他有更深入的体会,有助于日后的软件开发. 比如查看Activity的源码,如图     也可以查看

Android编程实现网络图片查看器和网页源码查看器实例_Android

本文实例讲述了Android编程实现网络图片查看器和网页源码查看器.分享给大家供大家参考,具体如下: 网络图片查看器 清单文加入网络访问权限: <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> 界面如下:   示例: public class MainActivity extends Activity { private EditText ima

网页源码轻松看_Dreamweaver

经常在网上转悠,你一定会发现很多制作精美的网页,那么有没有想过分析它们的源码,将它们的设计思想"借用"过来,给自己的网站也认真装饰一番呢?但是,有些网站的主人却对网页进行了一些限制,让你无法查看源代码,有时候甚至让你无法复制网页上的文字,让人很懊恼.其实,网页源码的查看也有许多技巧可循,只要你掌握了它们,就能够事半功倍地为自己的网页服务,下面就将这些技巧一一介绍给大家.     1.查看带有框架(Frame)的网页源码      如果有的网页中使用了框架(Frame),或者使用了多窗口

Android编程实现网络图片查看器和网页源码查看器实例

本文实例讲述了Android编程实现网络图片查看器和网页源码查看器.分享给大家供大家参考,具体如下: 网络图片查看器 清单文加入网络访问权限: <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> 界面如下: 示例: public class MainActivity extends Activity { private EditText image

【Android开发】网络通信之网页源码查看器

今天学习了安卓开发中有关网络通信相关的东西. 根据教学视频,我按照步骤写了一个"网页源码查看器".通过写这个东西,我学会了使用URL和 HttpURLConnection取得与网站的链接   部分链接代码: /* * 获取网页html源代码: * path 网页路径 * */ public static String getHtml(String path) throws Exception{ //将path包装成一个URL对象 URL url=new URL(path); //取得链