010_03HTML源码查看器

主要用到了ByteArrayOutputStream类。该类无需指定输出流的路径,而是将数据直接输出到内存缓冲区。

使用toByteArray方法获取内存缓冲区数据。

 1 package com.example.day10_03htmlsourceViewer;
 2
 3 import java.io.ByteArrayOutputStream;
 4 import java.io.InputStream;
 5 import java.net.HttpURLConnection;
 6 import java.net.URL;
 7 import android.app.Activity;
 8 import android.os.Bundle;
 9 import android.os.Handler;
10 import android.os.Message;
11 import android.view.View;
12 import android.widget.TextView;
13 import android.widget.Toast;
14
15 public class MainActivity extends Activity {
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20     }
21
22     final static int MSG_DOWNLOAD_OK =1;
23     final static int MSG_DOWNLOAD_ERROR =2;
24
25     Handler handler = new Handler(){
26         @Override
27         public void handleMessage(Message msg) {
28             super.handleMessage(msg);
29
30             switch (msg.what) {
31             case MSG_DOWNLOAD_OK:
32                 TextView tv_html= (TextView) findViewById(R.id.tv_html);
33                 tv_html.setText((String)msg.obj);
34                 break;
35             case MSG_DOWNLOAD_ERROR:
36                 Toast.makeText(MainActivity.this, "下载源码失败", 1).show();
37                 break;
38             default:
39                 break;
40             }
41         }
42     };
43     public void gethtml(View v){
44         Thread thread = new Thread(){
45             public void run() {
46                  String path = "http://192.168.3.30:8080/index2.html";
47                  try {
48                     URL url = new URL(path);
49                     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
50
51                     conn.setConnectTimeout(5000);
52                     conn.setReadTimeout(5000);
53                     conn.setRequestMethod("GET");
54                     conn.connect();
55
56                     if(conn.getResponseCode()==200)
57                     {
58                         InputStream is = conn.getInputStream();
59
60                         ByteArrayOutputStream baos = new ByteArrayOutputStream();
61                         byte[] b = new byte[1024];
62                         int len = 0;
63                         while((len=is.read(b))!=-1)
64                         {
65                             baos.write(b, 0, len);
66                         }
67                         is.close();
68                         baos.close();
69                         String htmlsource = new String(baos.toByteArray(),"GBK") ;
70                         Message msg= handler.obtainMessage();
71                         msg.what=MSG_DOWNLOAD_OK;
72                         msg.obj=htmlsource;
73                         handler.sendMessage(msg);
74                     }
75                     else {
76                         Message msg= handler.obtainMessage();
77                         msg.what=MSG_DOWNLOAD_ERROR;
78                         handler.sendMessage(msg);
79                     }
80                 } catch ( Exception e) {
81                     e.printStackTrace();
82                 }
83             }
84             ;
85         };
86         thread.start();
87     }
88 }

activity_main.xml和AndroidManifest.xml与010_02带缓存的图片查看器相同。

效果图:

时间: 2024-10-08 07:35:48

010_03HTML源码查看器的相关文章

android篇-如何做一个简单的安卓源码查看器

1,网页源码查看器: Httpurlconnection:用于发送或接收数据 Mainactivity篇: import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.os.Bundle; import android.os.Handler; import android.os.Lo

网页源码查看器

网页源码查看器 代码实现步骤 [1]搭建UI [2]httpurlconnection类基本用法 @OnClick(R.id.btn) public void onViewClicked() { final String url = mEt.getText().toString().trim(); if (TextUtils.isEmpty(url)) { Toast.makeText(this, "网址不能为空" + url, Toast.LENGTH_SHORT).show();

安卓http源码查看器详解

1.效果图如下,输入网址就可以看到该网址的源码 2.项目工程文件如右图所示: 3.首先,布局文件如下,我采用的是线性布局 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent"

Android(java)学习笔记203:网页源码查看器

1.项目框架图: 2.首先是布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="m

黎活明8天快速掌握android视频教程--24_网络通信之网页源码查看器

1 该项目的主要功能就是从将后台的html网页在Android的界面上显示出来 后台就是建立一个java web工程在工程尚建立一个html或者jsp文件就可以了,这里主要看Android客户端的程序 xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr

01_网页源码查看器基本实现

安卓上面敲127.0.0.1或者是localhost是不行的,安卓上面的localhost/127.0.0.1默认是10.0.2.2.有些第三方的模拟器可能不是这个值.安卓自带的模拟器肯定是没问题的.如果是第三方的模拟器自己练习一下可以搞一个路由器连接一下,让你当前的机器有一个地址.路由还是比较好搞的,把你的手机共享一下wifi.把所有的设备都连接到你的手机上,组成一个局域网,你把流量关了就可以了.

MySQL源码 解析器

sql请求发送到server端,需要经过解析器生成内部的数据结构对象,以方便进行优化和生成执行计划.解析器主要做了两件事情,词法分析和语法分析. 词法和语法分析:mysql使用lex词法分析器,yacc语法分析器进行分析,最后保存到lex对象结构中. 例如:     select id, name from xpchild where id=1 1. 在mysql_parse函数中使用lex_start初始化thd->lex对象,然后调用yacc中的MYSQLparse函数进行词法和语法分析.

MySQL源码 优化器

完成了sql的解析过程后,开始进入优化器: 调用的流程分为: mysql_select: JOIN::prepare: JOIN::optimize: JOIN::exec: prepare过程: 组装各个组件,包括:stepup tables, fields, condition, order 1. tables: setup_tables_and_check_access:从table_list中检查访问权限,并加入到leaf_tables中,增加tables计数. setup_tables

.NET Framework源码查看与调试

1. 直接下载.NET Framework源代码(下载地址),然后用Visual Studio打开查看. 2. 在线查看,网址:http://referencesource.microsoft.com/ . Refer: A new look for .NET Reference Source http://blogs.msdn.com/b/dotnet/archive/2014/02/24/a-new-look-for-net-reference-source.aspx Configure V