网页源码查看器

  • 网页源码查看器

    • 代码实现步骤
    • [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();
        }
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL Url = new URL(url);
                    HttpURLConnection
                            conn = (HttpURLConnection) Url.openConnection();
                    int code = conn.getResponseCode();
                    Log.d(TAG, "run: " + code);
                    if (code == 200) {
                        InputStream is = conn.getInputStream();
                        Log.d(TAG, "run: " + is);
                        String name = StreamUtils.StreamToString(is);
                        Log.d(TAG, "run: " + name);
                        Message message = mHandler.obtainMessage();
                        message.obj = name;
                        mHandler.sendMessage(message);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
    • [3]把流转换为String工具类
public class StreamUtils {

    private static ByteArrayOutputStream mBaos;

    public static String StreamToString(InputStream is) {
        try {
            mBaos = new ByteArrayOutputStream();
            byte[] buf = new byte[1024];
            int len = 0;
            while ((len = is.read(buf)) != -1) {
                mBaos.write(buf, 0, len);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return mBaos.toString();
    }
}
    • [4]联网要加上联网权限
    <uses-permission android:name="android.permission.INTERNET" />
      • 当加上权限后 也会报如下错误
      • android.os.NetworkOnMainThreadException  主线程(UI线程)访问网络的异常.  主线程这个概念是谷歌提出的.
      • 为什么会报这个异常.谷歌要求 在主线程不能进行耗时(拷贝数据 连接网络)的操作,如果在主线程中进行耗时操作会报anr(应用无响应)异常; 如何解决?我们可以自己创建一个线程 来访问网络.
    • [5]当我们把访问访问的操作放到子线程又会报如下错误:
      • android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
      • 只有主线程(UI线程)才可以更新UI
    • [6].handler(助手)的使用 —->负责线程的切换 
      • 6.1创建handler对象
    @SuppressLint("HandlerLeak")
    private Handler mHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            Log.d(TAG, "handleMessage: callback");
            return false;
        }
    }) {
        @Override
        public void handleMessage(Message msg) {
            Log.d(TAG, "handleMessage: handlemessage");
            String name = (String) msg.obj;
            mTv.setText(name);
            super.handleMessage(msg);
        }
    };
      • 6.2 发消息
                        Message message = mHandler.obtainMessage();
                        message.obj = name;
                        mHandler.sendMessage(message);
    • 7.scrollView 垂直滚动的view
    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/tv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" />
    </ScrollView>
      • 注意:scrollView控件只能包裹一个孩子.如果想包裹多个在外面套一个布局.

原文地址:https://www.cnblogs.com/nangongyibin/p/10219206.html

时间: 2024-08-29 01:56:36

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

黎活明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

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

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

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

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

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

安卓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"

传播智客学习笔记--L24 网页源码查看和添加滚动条

添加滚动条 1 <ScrollView 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 > 5 <TextView 6 android:id="@+id/html" 7 android:layout_width="wrap_content" 8 android:layout_height="

Mac OS使用技巧十九:Safari碉堡功能之二查看网页源码

因为大三下的时候选修了搜索技术,了解了网络上搜索引擎和网络爬虫的信息扒取的一些东西,后来我们做了一个比较水的东西,就是只扒取了几家较大的下载网站几十个软件的评分下载量等信息,当用户输入一个程序名称,我们会根据下载量和评分算出的分数做一个推荐排序. 咳,扯远了.那时候我们在windows下需要用火狐来查看网页的源代码,这点强大的Safari也是可以做到的,甚至Safari提供的查看源代码功能要更强,只不过被隐藏了. 下面我来为大家介绍Safari的隐藏功能:查看网页源码 我们打开Safari,菜单

“网页源码的隐藏”和js调试

最近在抓包的时候,发现诸多“诡异”的现象.点击按钮,第一个get包里面直接带了一个key值.当时的这个key值怎么来的满头的雾水! 当时非常的迷惑,主要的原因就是这个key值的产生在第一个get包里,不是后面的各种类型的包产生的!包括网页类型,js. 后来只有反推思考,竟然当点击按钮以后产生的第一个包就存在这么一个值,那么这个值就应该是点击按钮存在的那个页面里就应该存在了. 为了证明我这个推论,我就用google开发工具查看点击按钮区域的代码,结果要找的key值就在那里. 当这个key映入眼帘的