1.直接上效果图

2.代码

主要就是工具类HtmlService.java:

  1. import java.io.ByteArrayOutputStream;
  2. import java.io.InputStream;
  3. import java.net.HttpURLConnection;
  4. import java.net.URL;
  5.  
  6. /**
  7. * 获取HTML数据
  8. *
  9. * @author David
  10. *
  11. */
  12. public class HtmlService {
  13.  
  14. public static String getHtml(String path) throws Exception {
  15. // 通过网络地址创建URL对象
  16. URL url = new URL(path);
  17. // 根据URL
  18. // 打开连接,URL.openConnection函数会根据URL的类型,返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
  19. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  20. // 设定URL的请求类别,有POST、GET 两类
  21. conn.setRequestMethod("GET");
  22. //设置从主机读取数据超时(单位:毫秒)
  23. conn.setConnectTimeout(5000);
  24. //设置连接主机超时(单位:毫秒)
  25. conn.setReadTimeout(5000);
  26. // 通过打开的连接读取的输入流,获取html数据
  27. InputStream inStream = conn.getInputStream();
  28. // 得到html的二进制数据
  29. byte[] data = readInputStream(inStream);
  30. // 是用指定的字符集解码指定的字节数组构造一个新的字符串
  31. String html = new String(data, "utf-8");
  32. return html;
  33. }
  34.  
  35. /**
  36. * 读取输入流,得到html的二进制数据
  37. *
  38. * @param inStream
  39. * @return
  40. * @throws Exception
  41. */
  42. public static byte[] readInputStream(InputStream inStream) throws Exception {
  43. ByteArrayOutputStream outStream = new ByteArrayOutputStream();
  44. byte[] buffer = new byte[1024];
  45. int len = 0;
  46. while ((len = inStream.read(buffer)) != -1) {
  47. outStream.write(buffer, 0, len);
  48. }
  49. inStream.close();
  50. return outStream.toByteArray();
  51. }
  52.  
  53. }

MainActivity.java 修改如下:

  1. public class MainActivity extends Activity {
  2.  
  3. private String path = "http://www.cnblogs.com/yc-755909659/";
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8.  
  9. TextView textView = (TextView)this.findViewById(R.id.textView);
  10. try {
  11. String htmlContent = HtmlService.getHtml(path);
  12. textView.setText(htmlContent);
  13. } catch (Exception e) {
  14. textView.setText("程序出现异常:"+e.toString());
  15. }
  16. }
  17. }

activity_main.xml 很简单,还是放上来吧

  1. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent" >
  4.  
  5. <TextView
  6. android:id="@+id/textView"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content" />
  9.  
  10. </ScrollView>

最后,记得添加网络访问权限哦

  1. <uses-permission android:name="android.permission.INTERNET"/>

【Android Demo】获取指定网页的页面源代码的更多相关文章

  1. Android遍历获取指定目录的文件

    我们经常遇到一个问题,需要获取指定目录的某些扩展名的文件,并将其存在Vector中,怎么来实现呢? // 获取当前目录下所有的mp4文件 public static Vector<String& ...

  2. C#获取指定网页源码的几种方法

    // WebClient private string GetWebClient(string url) { string strHTML = ""; WebClient myWe ...

  3. C#快速获取指定网页源码的几种方式,并通过字符串截取函数 或 正则 取指定内容(IP)

    //只获取网页源码开始到标题位目的进行测试 //第一种方式经过测试,稍微快点 string url = "http://www.ip.cn"; HttpWebRequest req ...

  4. Android遍历获取指定目录的文件(转)

    // 获取当前目录下所有的mp4文件 public static Vector<String> GetVideoFileName(String fileAbsolutePath) { Ve ...

  5. android 打开浏览器指定网页

    <?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> ...

  6. 【python】获取指定网页上的所有超级链接

    # -*- coding: utf-8 -*- import urllib2 import re #connect to a URL website = urllib2.urlopen("h ...

  7. Python 网络爬虫与信息获取(二)—— 页面内容提取

    1. 获取超链接 python获取指定网页上所有超链接的方法 links = re.findall(b'"((http|ftp)s?://.*?)"', html) links = ...

  8. Android 获取浏览器当前分享页面的截屏

    Android 获取浏览器当前分享页面的截屏 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/BrowserScreenShotActivity 文中 ...

  9. Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码

    通过 正则表达式 来获取一个网页中的所有的 URL链接,并下载这些 URL链接 的源代码 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 ...

随机推荐

  1. Csharp: read excel file using Open XML SDK 2.5

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 那些教程没有的php3-命名空间

    php.net (PHP 5 >= 5.3.0, PHP 7) 定义命名空间 虽然任意合法的PHP代码都可以包含在命名空间中,但只有以下类型的代码受命名空间的影响,它们是:类(包括抽象类和tra ...

  3. [Azure] Notification Hubs注册模式

    [Azure] Notification Hubs注册模式 关于Azure Notification Hubs的注册模式,可以参考下列连结的文件内容. Notification Hubs Featur ...

  4. java调用html模板发送html内容的邮件

    在项目需要发送邮件,普通内容的邮件觉得太单调.太丑,没逼格,所以说直接把用到的邮件内容做成一个html模板,发送之前将对应参数替换掉,发送html内容的高逼格邮件. 首先需要引用jar包,这就不多说了 ...

  5. 聊聊GISer的职业发展

    一.前言 去年写了一篇名为<GISer们还有机会屌丝逆袭吗?>的博文,希望能和广大GISer一起探讨地理信息产业留给小团队和个人的机会.文章发布后,很多GISer通过网络和我进行了交流,其 ...

  6. 与成都的幸福行动家交流GTD

    今年第四次来成都了,通过<小强升职记>的作者邹鑫的撮合,与成都的幸福行动家何平取得了联系,2014年12月6日下午给几个小伙伴们分享了GTD3年来的一点体会.有几位刚接触GTD的朋友,也有 ...

  7. 据说是百度ios面试题

    百度面试题:   一面:知识点 Objective C runtime library: Objective C的对象模型,Block的底层实现结构,消息发送,消息转发,内存管理 CoreData : ...

  8. 二维数组 string[,]

    string[,] strArr = {                               {"101","电脑"},                 ...

  9. git不常用命令

    1.删除远程分支 git remote origin :分支名        [解释:意思是提交一个空分支到远程分支] ===持续更新

  10. Runtime 方法替换 和 动态添加实例方法 结合使用

    前言: 方法替换,可以替换任意外部类的方法,而动态添加方法只能实现在被添加类创建的对象里,但是将方法替换和动态添加方法结合使用,可以实现,对任意外部类动态添加需要的方法,这个方法可以是类方法也可以是实 ...