1.android的API提供了访问网络的一个类HttpURLConnection

2.通过发送GET请求获取服务器返回的html代码

3.先看看布局文件,如下所示,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <Button
android:onClick="get"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取源码"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#00f"
android:hint="源码显示"/>
</ScrollView> </LinearLayout>

布局样子:

4.下来是清单文件,记得连接网络要添加权限

5.1再看java代码,MainActivity的

package com.market.source;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView; import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLConnection; import butterknife.BindView;
import butterknife.ButterKnife; public class MainActivity extends Activity { @BindView(R.id.et)
EditText et; @BindView(R.id.tv)
TextView tv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
} public void get(View vew) throws IOException {
final String str = et.getText().toString().trim(); new Thread(){ @Override
public void run() {
//1.请求地址url
URL url = null;
try {
url = new URL(str);
//2.获取对这个地址的连接
HttpURLConnection con = (HttpURLConnection) url.openConnection(); //3.设置对这个地址的请求,GET请求
con.setRequestMethod("GET");
//4.设置请求参数
con.setConnectTimeout(5000);
//5.获取服务器的响应
int code = con.getResponseCode();
//6.根据响应吗,判断请求成功还是失败,200成功
if(code==200){
//7.成功的话,服务器一流的形式返回数据
InputStream inputStream = con.getInputStream(); //8.这个流是字节流,需要我们转换为字符流才可以认识
final String info = StreamTool.StreamtoString(inputStream);
Log.e("MainActivity",info);
runOnUiThread(new Runnable() {
@Override
public void run() {
tv.setText(info);
}
}); }
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }.start();
} }

5.2工具类,用来将一个流转化为字符串

public class StreamTool {

    public static String StreamtoString(InputStream inputStream) {

        int len = -1;
byte[] buffer = new byte[1024];
//内存数组输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream(); try {
while((len=inputStream.read(buffer)) != -1){ baos.write(buffer,0,len);
}
String str = new String(baos.toByteArray());
return str; } catch (IOException e) {
e.printStackTrace();
}finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} return null;
} }

6.运行效果查看

html查看器android的更多相关文章

  1. Android 网络HTML查看器

    本文实现一个基于Android的网络HTML查看器 新建项目,项目布局文件如下: <LinearLayout xmlns:android="http://schemas.android ...

  2. Android 网络图片查看器

    今天来实现一下android下的一款简单的网络图片查看器 界面如下: 代码如下: <LinearLayout xmlns:android="http://schemas.android ...

  3. 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)

    1.内容观察者ContentObserver 如果ContentProvider的访问者需要知道ContentProvider中的数据发生了变化,可以在ContentProvider 发生数据变化时调 ...

  4. android 网络_网络图片查看器

    xml <?xml version="1.0"?> -<LinearLayout tools:context=".MainActivity" ...

  5. android 网络_网络源码查看器

    xml设计 <?xml version="1.0"?> -<LinearLayout tools:context=".MainActivity" ...

  6. Android -- 网络图片查看器,网络html查看器, 消息机制, 消息队列,线程间通讯

    1. 原理图 2. 示例代码 (网络图片查看器) (1)  HttpURLConnection (2) SmartImageView (开源框架:https://github.com/loopj/an ...

  7. Android中的图片查看器

    本案例,使用Eclipse来开发Android2.1版本号的图片查看器. 1)首先,打开Eclipse.新建一个Android2.1版本号的项目ShowTu,打开res/values中文件夹下的str ...

  8. Android仿微信朋友圈图片查看器

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/40264551 看博文之前,希望大家先打开自己的微信点到朋友圈中去,细致观察是不是发 ...

  9. Android 网络图片查看器与网页源码查看器

    在AndroidManifest.xml里面先添加访问网络的权限: <uses-permission android:name="android.permission.INTERNET ...

随机推荐

  1. python3学习笔记(3)

    一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用f2 = 123不可以被调用2.chr()和ord()chr()将ascii码转换成字符,or ...

  2. Spring学习笔记(二)之装配Bean

    一,介绍Bean的装配机制 在Spring中,容器负责对象的创建并通过DI来协调对象之间的关系.但是我们要告诉Spring创建哪些Bean并且如何将其装配在一起.,装配wiring就是DI依赖注入的本 ...

  3. Cocos2D-X屏幕适配新解

    ”   阅读器 为了适应移动终端的各种分辨率大小,各种屏幕宽高比,在 Cocos2D-X(当前稳定版:2.0.4) 中,提供了相应的解决方案,以方便我们在设计游戏时,能够更好的适应不同的环境.   而 ...

  4. 分布式缓存之Ehcache与terracotta - Terracotta服务器概念篇

    1.介绍 Terracotta服务器为Terracotta产品提供分布式数据平台.Terracotta服务器集群被称为Terracotta服务器阵列(TSA).Terracotta服务器阵列可以从单个 ...

  5. 《Maven实战》 第7章 生命周期与插件

    7.1什么是生命周期 软件开发人员每天都在对项目进行清理.编译.测试及部署,Maven生命周期是对所有构建过程进行抽象和统一,含项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几 ...

  6. android扫描网页二维码进行网页登录

    转载请标明出处: http://www.cnblogs.com/dingxiansen/: 本文出自:丁先森-博客园 周六和朋友去网吧开黑,开机打开TGP,朋友那边开始输入账号密码,我看了他一眼low ...

  7. 简单购物车程序(Python)

    #简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...

  8. 【转】Swig 使用指南

    原文链接:https://www.cnblogs.com/elementstorm/p/3142644.html 如何使用 API swig.init({ allowErrors: false, au ...

  9. 计算出前N项的数据

    #include<iostream> #include<algorithm> #include<numeric> using namespace std; ; in ...

  10. Serverless无服务应用架构纵横谈

    Serverless无服务应用架构纵横谈 一.Serverless是啥 自从互联网兴起以来,Server就成了网络的核心部件.所以围绕Server的生意圈,也发展得如火如荼. 从最早的电信托管,到虚拟 ...