Android开发入门之网络通信(网页源码查看器)

2024-06-03 05:38

本文主要是介绍Android开发入门之网络通信(网页源码查看器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一步:新建一个Android工程命名为htmlViewer目录结构如下图:


第二步:修改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="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/htmlPath" /><EditTextandroid:id="@+id/et_path"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="@string/path" /><Buttonandroid:id="@+id/btn_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/view" /><ScrollViewandroid:layout_width="wrap_content"android:layout_height="wrap_content" ><TextViewandroid:id="@+id/tv_code_view"android:layout_width="match_parent"android:layout_height="wrap_content" /></ScrollView></LinearLayout>

strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">网页源码查看器</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string><string name="htmlPath">网页地址</string><string name="view">查看</string><string name="success">获取源码成功!</string><string name="fail">获取源码失败!</string><string name="path">http://www.so.com</string></resources>

第三步:编写MianActivity类:

package cn.leigo.htmlviewer;import java.io.IOException;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import cn.leigo.service.CodeService;public class MainActivity extends Activity implements OnClickListener {private EditText mHtmlPathEditText;private Button mViewButton;private TextView mCodeViewTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mHtmlPathEditText = (EditText) findViewById(R.id.et_path);mViewButton = (Button) findViewById(R.id.btn_view);mCodeViewTextView = (TextView) findViewById(R.id.tv_code_view);mViewButton.setOnClickListener(this);}@Overridepublic void onClick(View v) {String path = mHtmlPathEditText.getText().toString();String code;try {code = CodeService.getHtml(path);mCodeViewTextView.setText(code);Toast.makeText(this, R.string.success, Toast.LENGTH_SHORT).show();} catch (IOException e) {e.printStackTrace();Toast.makeText(this, R.string.fail, Toast.LENGTH_SHORT).show();}}
}

业务类CodeService:

package cn.leigo.service;import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;import javax.net.ssl.HttpsURLConnection;import cn.leigo.utils.StreamTool;public class CodeService {/*** 获取网页HTML源代码* * @param path*            网页路径* @return* @throws IOException*/public static String getHtml(String path) throws IOException {String code = "";URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);conn.setRequestMethod("GET");if (conn.getResponseCode() == HttpsURLConnection.HTTP_OK) {InputStream inputStream = conn.getInputStream();byte[] data = StreamTool.read(inputStream);code = new String(data, "UTF-8");}return code;}}

工具类StreamTool:

package cn.leigo.utils;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;public class StreamTool {/*** 读取流中的数据* * @param inputStream* @return* @throws IOException*/public static byte[] read(InputStream inputStream) throws IOException {ByteArrayOutputStream baos = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = inputStream.read(buffer)) != -1) {baos.write(buffer, 0, len);}inputStream.close();return baos.toByteArray();}}

最后别忘了在AndroidManifest.xml文件中添加权限:

<uses-permission android:name="android.permission.INTERNET" />  

运行上述工程查看效果图:


这篇关于Android开发入门之网络通信(网页源码查看器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026138

相关文章

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键