当前课程知识点:Android应用开发基础 > 第九章 网络技术 > 9.1 网络服务概述 > 9.1 实践案例-WebView和Http服务
本节我们通过实例来介绍
如何使用Android的网络服务实现网络访问
主要包括WebView网络组件和Http 网络服务
下面我们介绍如何使用WebView控件在程序中
嵌入一个浏览器
首先创建一个应用程序 右击项目名
依次选择 “New” |“Module”设置应用程序的名字
设置应用程序的名字
在视图设置中 选择“Empty Activity”空白视图
视图的名字和布局的名字选择默认
进入res\layout\activity_main布局文件
修改布局类型为LineLayout线性布局
新建WebView组件设置宽度和高度都为充满
ID为“web_view"
选中activity_main布局文件
右键选择Generate LayoutCreator
组件变量命名采用mAaBbCc的方式
自动生成组件初始化的代码
进入MainActivity类
在onCreate()中创建initData()方法
在initData()方法中调用WebView的
getSettings().setJavaScriptEnabled()方法
设置WebView支持JavaScript脚本
调用WebView的setWebViewClient()方法
并传入一个WebViewClient的实例
当需要从一个网页跳转到另一个网页时
目标网页仍在当前WebView中显示
再调用WebView的loadUrl()方法,将网址传入
进入AndroidManifest文件声明访问网络的权限
代码编写完成后运行程序
通过浏览器功能展示新浪首页
下面我们介绍如何使用HTTP协议访问网络
通过在输入框输入网址 点击“HTTP访问”按钮
发送HTTP请求 在TextView中显示
首先创建一个应用程序 右击项目名
依次选择 “New” |“Module”设置应用程序的名字
在视图设置中,选择“Empty Activity”空白视图
视图的名字和布局的名字选择默认
进入res\layout\activity_main布局文件
修改布局类型为LineLayout线性布局
排列方向为垂直
新建LinearLayout组件 设置宽度为充满
高度为适配,排列方式为水平
在LinearLayout新建一个TextView组件
设置宽度和高度都为适配,ID为textview
设置占比例“1”,文本为”IP地址:“
文本居中
新建一个EditText组件
设置宽度和高度都为适配,ID为edit_ipadress
设置占比例“1”,文本为”192.168.1.100“
预设文本内容为“192.168.1.2”
新建Button组件
设置宽度为充满 高度为适配 ID为”btn_http"
文本为”HTTP访问“
设置间距为“10dp"
新建ScrollView组件,设置宽度和高度都为充满
在ScrollView组件中新建LinearLayout组件
设置宽度为充满,高度为适配,排列方向为垂直
在ScrollView组件中新建TextView组件
设置宽度为充满,高度为适配
ID为”textview_content"
文本为“TextView"
新建一个HttpThread,
继承父类Thread
新建网络监听器对象HttpListener
选中HttpListener创建“HttpListener"接口文件
设置请求成功监听接口onSuccess
请求失败监听接口onFailed
进入HttpThread类
新建私有字符串私有变量strUrl代表网址
点击右键选择Generate 创建
参数为mHttpListener,strUrl的
构造方法HttpThread()
新建run()方法,在run()方法中新建
HttpURLConnection 访问对象
新建BufferedReader缓存
新建 InputStream输入流
调用HttpURLConnection的setConnectTimeout()
设置网络访问超时时间为5000毫秒
调用HttpURLConnection的setRequestMethod()
设置指定请求方式为GET方式
调用HttpURLConnection的setReadTimeout()
方法设置读取数据超时时间
调用HttpURLConnection的getInputStream()
获取输入流in
实例化BufferedReader缓存对象
并将输入流放入缓存
新建字符串缓存response
字符串变量line代表网络访问请求行数
按行读取输入流缓存
使用append()方法将网络访问所有请求
存入字符串
网络请求成功将信息提交回调接口onSuccess()
网络请求失败将错误信息提交回调接口onFailed
如果BufferedReader缓存不为空
调用BufferedReader的close()方法关闭缓存
调用InputStream的close()方法关闭输入流
如果HttpURLConnection访问对象不为空
调用HttpURLConnection的disconnect()方法
关闭网络连接
选中activity_main布局文件
点击右键选择Generate LayoutCreator新建变量名
采用mAaBbCc方式自动生成组件初始化的代码
新建网络监听器对象HttpListener
在onCreate()中创建initData()方法
初始化网络监听对象HttpListener
实现onSuccess接口
使用runOnUiThread()完成对组件的访问
将网络成功后获取数据显示到TextView
实现onFailed()接口
使用runOnUiThread()完成对组件的访问
将网络失败后获取数据显示 到TextView
在onClick响应函数添加响应事件submit()
设置TextView的初始文本为空
新建线程HttpThread
并调用HttpThread的start()方法启动线程
进入AndroidManifest文件声明访问网络的权限
代码编写完成后运行程序
输入框输入网址,点击“HTTP访问”按钮
发送HTTP请求
在TextView中显示
这就是Android网络服务的全部内容
请大家按照讲课的内容
完成WebView网络组件和Http网络服务实例
在Android的手机和模拟器中分别运行
通过实例理解Android网络服务的流程
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统