Html源文件查看器(Android)
来源:互联网 发布:互联网网络销售o2o 编辑:程序博客网 时间:2024/06/05 06:16
在访问html网页的时候,实际上服务器是把该html源文件给你了,而我们之所以看到页面是浏览器把那个文本给解析了,然后把解析结果显示给你,而浏览器最终接收到的只是文本而已
我们请求一个html网址,实际上服务器是以流的形式把该html源文件写给客户端
String path = "https://www.baidu.com/"; try { URL url = new URL(path); //获取连接对象,此时还未建立连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); //先建立连接,再获取响应码 if(conn.getResponseCode() == 200){ //拿到服务器返回的输入流,流里的数据就是html的源文件 InputStream is = conn.getInputStream(); //从流里把文本数据取出来 String text = Utils.getTextFrom(is); } } catch (Exception e) { e.printStackTrace(); } }
从流中读数据方法:
public class Utils { //创建专门从流里读数据的方法 public static String getTextFrom(InputStream is){ byte[] b = new byte[1024]; int len = 0; //创建字节数组输出流,读取输入流的文本数据时,同步把数据写入数组输出流 ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { while((len = is.read(b)) != -1){ bos.write(b, 0, len); } //把字节数组输出流里的数据转换成字节数组 String text = new String(bos.toByteArray()); return text; } catch (IOException e) { e.printStackTrace(); } //try出问题了就什么都读不到 return null; }}
因为建立网络连接,读取数据的方法是不能在主线程中运行,因此需要建立子线程,Handler
Handler handler = new Handler(){ public void handleMessage(Message msg) { TextView tv = (TextView) findViewById(R.id.tv); tv.setText((String) msg.obj); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v){ Thread t = new Thread(){ @Override public void run() { String path = "https://www.baidu.com/"; try { URL url = new URL(path); //获取连接对象,此时还未建立连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); //先建立连接,再获取响应码 if(conn.getResponseCode() == 200){ //拿到服务器返回的输入流,流里的数据就是html的源文件 InputStream is = conn.getInputStream(); //从流里把文本数据取出来 String text = Utils.getTextFrom(is); //发送消息,让主线程刷新UI,显示源文件 Message msg = handler.obtainMessage(); msg.obj = text; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }; t.start(); }
当服务器与客户端码表不一致时就会出现乱码,客户端默认时是utf-8,因此需要改服务器的码表为utf-8
0 0
- Html源文件查看器(Android)
- 【Android-008】【Html源文件查看器】
- 黑马Android:HTML源文件查看器
- 制作html源文件查看器
- Android学习(47) -- Html源文件查看器
- Android反编译查看源文件
- Androidx学习笔记(32)--- Html源文件查看器
- 网络编程-图片、Html源文件查看器、get+post
- Android HTML查看器
- android 查看apk中资源文件
- 如何查看网页的html源文件
- 查看源文件
- html中禁止网页另存为、查看源文件、屏蔽鼠标右键
- Android 网页html源码的查看器
- Android小项目02--HTML查看器
- Android中F3查看源文件没效果的解决方法
- 源文件查看小技巧
- 查看JAVA源文件
- 介绍国外15个播客,可进入
- Java多线程执行业务方法
- 虚继承
- hdu 5996 dingyeye loves stone
- Leetcode 84. Largest Rectangle in Histogram (Hard) (cpp)
- Html源文件查看器(Android)
- PHP中的数组(拆分与合并)
- Poedu_C语言提升_Lesson03_20161117_数据类型3
- MySQL的外键约束执行不了
- codeforces-745【思维】
- github pages + Hexo + 域名绑定搭建个人博客增强版
- 第 9 章 - 11 Domino Web服务器应用程序接口(DSAPI)
- MyBatis中的动态SQL
- 移动端与rem那些事