博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android Demo】获取指定网页的页面源代码
阅读量:6874 次
发布时间:2019-06-26

本文共 2165 字,大约阅读时间需要 7 分钟。

1.直接上效果图

2.代码

主要就是工具类HtmlService.java:

import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * 获取HTML数据 *  * @author David *  */public class HtmlService {    public static String getHtml(String path) throws Exception {        // 通过网络地址创建URL对象        URL url = new URL(path);        // 根据URL        // 打开连接,URL.openConnection函数会根据URL的类型,返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        // 设定URL的请求类别,有POST、GET 两类        conn.setRequestMethod("GET");        //设置从主机读取数据超时(单位:毫秒)        conn.setConnectTimeout(5000);        //设置连接主机超时(单位:毫秒)        conn.setReadTimeout(5000);        // 通过打开的连接读取的输入流,获取html数据        InputStream inStream = conn.getInputStream();        // 得到html的二进制数据        byte[] data = readInputStream(inStream);        // 是用指定的字符集解码指定的字节数组构造一个新的字符串        String html = new String(data, "utf-8");        return html;    }    /**     * 读取输入流,得到html的二进制数据     *      * @param inStream     * @return     * @throws Exception     */    public static byte[] readInputStream(InputStream inStream) throws Exception {        ByteArrayOutputStream outStream = new ByteArrayOutputStream();        byte[] buffer = new byte[1024];        int len = 0;        while ((len = inStream.read(buffer)) != -1) {            outStream.write(buffer, 0, len);        }        inStream.close();        return outStream.toByteArray();    }}

MainActivity.java 修改如下:

public class MainActivity extends Activity {    private String path = "http://www.cnblogs.com/yc-755909659/";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                TextView textView = (TextView)this.findViewById(R.id.textView);          try {              String htmlContent = HtmlService.getHtml(path);            textView.setText(htmlContent);          } catch (Exception e) {                 textView.setText("程序出现异常:"+e.toString());        }      }}

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

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

 

来源:

你可能感兴趣的文章
你如何理解HTML结构的语义化?
查看>>
JQuery Ajax 的简单使用
查看>>
Codeforces Round #287 (Div. 2) ABCDE
查看>>
【转载】读懂IL代码就这么简单(二)
查看>>
09-JS的事件流的概念(重点)
查看>>
有关inline-block
查看>>
文献随笔(九)
查看>>
git相关
查看>>
加入大型的js文件如jQuery文件,Eclipse会报错
查看>>
POJ 2763 (树链剖分+边修改+边查询)
查看>>
全局变量---只创建一次
查看>>
IOS APP上下黑边问题
查看>>
数位dp题集
查看>>
C# 汉字转拼音
查看>>
jquery实现复制的两种方式
查看>>
Django分页(一)
查看>>
Balance Adjustment页面调整无法保存的问题
查看>>
De Moivre–Laplace theorem
查看>>
symfony2使用form指定的checkbox,设置其属性disabled
查看>>
linux操作之软件安装(一)
查看>>