当前课程知识点:智能设备应用开发(基于Android平台) > 单元7 网络应用技术 > 任务二 使用HTTP访问网络资源 > html
返回《智能设备应用开发(基于Android平台)》慕课在线视频课程列表
URL(Uniform Resource Locator)对象代表统一资源定位器,它是指向互联网”资源”的指针。资源可以是简单的文件或目录,也可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询。通常情况而言,URL可以由协议名、主机、端口和资源组成。
URL类提供了一些构造器用于创建URL对象,一旦获得URL对象之后,可以调用如下常用方法来访问这些URL对应的资源。
String getFile():获取此URL的资源名。
String getHost():获取此URL的主机名。
string getPath():获取此URL的路径部分。
int getPort():获取此URL的端口号。
String getProtocol():获取此URL的协议名称。
String getQuery():获取此URL的查询字符串部分。
URLConnection openConnection():返回一个URLConnection对象,它表示到URL所引用的远程对象的连接。
InputStream openStream():打开与此URL的连接,并返回一个用于读取该URL资源的InputStream。
1.使用URL读取网络资源
URL对象中前面几个方法很容易理解和实现,而该对象提供的openStream()可以读取该URL资源的InputStream,通过此方法可以非常方便地读取远程资源。这个还是比较难理解和实现的,下面的片断就是关于读取URL资源的InputStream。
//定义一个URL对象
URLurl=new
URL("http://www.lnqg.com.cn/data/upload/slide/120618150611996.jpg");
//打开该URL对应的资源的输入流
InputStream istream=url.openStream();
//从InputStream中解析出图片
bitmap=BitmapFactory.decodeStream(istream);
//发送消息、通知UI组件显示该图片
handler.sendEmptyMessage(0x123);
istream.close();
istream=url.openStream();
//打开手机文件对应的输出流
OutputStream ostream=openFileOutput("lnqg.jpg",MODE_APPEND);
byte[] buff=new byte[1024];
int hasRead=0;
//将URL对应的资源下载到本地
while((hasRead=istream.read(buff))>0)
{
ostream.write(buff,0,hasRead);
}
istream.close();
ostream.close();
2.使用URLConnection提交请求
在使用URLConnection之前,我们来先了解一下在网络访问的过程中如何使用参数来控制访问过程。
(1)网络访问参数
在请求的过程中提供给服务器的参数有两种类型,我们暂且可以称之为请求参数和控制参数。其中请求参数是和具体的业务和内容相关的,如网络服务器的地址就是一个请求参数,包括除服务器地址外的附加的查询字符串,使用POST方式来访问时的内容附加参数等都是请求参数。
控制参数主要讨论的是从技术上如何来控制这个访问的过程,比如控制访问的超时,控制一些内容编码的格式,向服务器提供关于当前访问其的客户端的类型等等,都可以认为是控制参数。
在客户端设置请求参数的方式和请求的类型是相关的,在HTTP协议中,通常使用两种请求类型,Get和Post,它们在技术上差异主要是浏览器或客户端在提供请求和访问参数时对于请求用的信息的处理和封装方式是不同的,当然服务器也知道客户端是使用何种方式提交的请求,并能够做出对应的处理。
Get方法通常用于读取服务器资源,这个请求不会对服务器的的内容作出修改,那么其参数就主要用于提交给服务器来控制能够提供哪些响应的内容,通常像HTML页面中的资源链接使用的就是典型的Get方法;
Post方法通常用于向服务器提供能够修改服务器端内容的信息,如用于处理表单,上传文件等情况,它的意思基本上是说现在传递的参数和数据将会修改服务器端资源的内容。
(2)Get方式的参数处理
Get提交方法是客户端通常将请求参数以约定的格式添加到请求的网络URL地址当中作为一个整体提交给服务器,服务器从中解析出相应的参数作为依据进行处理。
在Android程序中,参数设置主要影响URL字符串,和使用Connection及Client访问的方式无关,下面是一个示例代码片段:
List <NameValuePair>ns=new ArrayList <NameValuePair>();
ns.add(new BasicNameValuePair(“username”,”cherry”);
ns.add(new BasicNameValuePair(“password”,”123456”);
String lS=URLEncodedUtils.format(ns,”utf-8”);
String urlName=“http://www.hao123. com”;
If((lS!=null&&longS.length()==0)) urlName+=“?”+lS;
Log.d(“URL”,urlName);
//这里最终提交的URL字符串应该为
http://www.hao123.com?username=cherry&password=123456
程序说明:
我们假设参数是作为键-值对列表保存在列表中,列表中有两个参数对(username和
URLConnection已经可以非常方便地与指定站点交换信息,URLConnection还有一个子类:HttpURLConnection,HttpURLConnection在URLConnection的基础上做了进一步改进,增加了一些用于操作HTTP资源的便捷方法。
1.使用HttpURLConnection
2.使用Apache HttpClient发送GET、POST请求
返回《智能设备应用开发(基于Android平台)》慕课在线视频列表
-任务一 开发第一个Android应用程序
--外部链接
-单元1 开发第一个Android应用程序--任务一 开发第一个Android应用程序
-任务一 唐诗赏析软件
--html
--外部链接
-任务一 唐诗赏析软件--作业
-任务二 用户注册界面设计
--用户注册界面设计
-单元2 界面编程--任务二 用户注册界面设计
-任务三 用户登录界面设计
--用户登录界面设计
-单元2 界面编程--任务三 用户登录界面设计
-任务四 游戏开始界面设计
--游戏开始界面设计
-单元2 界面编程--任务四 游戏开始界面设计
-任务五 图片浏览器
--2-5-1
--2-5-2
-任务五 图片浏览器--作业
-任务六 个人信息收集界面设计
--个人信息收集界面
--RadioButton(单选按钮)和CheckBox(复选框)
--html
-任务六 个人信息收集界面设计--作业
-任务七 日期和时间选择器
--日期和时间选择器
-任务七 日期和时间选择器--作业
-任务八 猜拳游戏
--2-8-1
--2-8-2
-任务八 猜拳游戏--作业
-任务九 制作选项菜单
--制作选项菜单
--选项菜单
-任务九 制作选项菜单--作业
-任务十 简单的文本编辑器
--简单的文本编辑器
-任务十 简单的文本编辑器--作业
-任务十一 制作滚动视图界面
--制作滚动视图界面
-任务十一 制作滚动视图界面--作业
-任务一 用户登录功能实现
--3-1-1
--3-1-2
--3-1-3
--html
--Video
-任务一 用户登录功能实现--作业
-任务二 Activity的一生
--3-2-1
--3-2-2
--3-2-3
--3-2-4
-任务一 使用Intent的Action属性实现页面之间的跳转
--4-1-1
--4-1-2
--Intent的Action、Category属性与intent-filter配置
-任务二 返回系统HOME页面
--4-2-1
--4-2-2
--通过标准Action和Category调用系统Activity
-任务三 浏览Google首页、打开一幅图片、启动给指定号码打电话、发短信页面
--4-3-1
--4-3-2
--html
-任务一 使用SharePreferences存储和读取数据
--5-1-1
--5-1-2
-任务一 使用SharePreferences存储和读取数据--作业
-任务二 应用程序数据文件夹里的文件读写
--5-2-1
--5-2-2
--文件存储
--文件读取
-任务二 应用程序数据文件夹里的文件读写--作业
-任务三 基于SQLite的用户信息存储器
--5-4-1
--5-4-2
-任务三 基于SQLite的用户信息存储器--作业
-任务一 启动和关闭一个Service
--html
--html
--html
-任务一 启动和关闭一个Service--作业
-任务二 来电监听器
--来电监听器
--html
-任务二 来电监听器--作业
-任务一 基于TCP协议的点对点通信
--默认
--7-1-2
--7-1-3
-任务一 基于TCP协议的点对点通信--作业
-任务二 使用HTTP访问网络资源
--默认
--7-2-2
--html
-任务二 使用HTTP访问网络资源--作业
-任务三 天气预报软件实现
--7-3-1
--7-3-2
--7-3-3
--7-3-4
--7-3-5
--html
-课程介绍
--课程定位
--内容选取
--内容组织
--教学模式
--教学平台
-课程建设
--建设目标
--建设思路
--建设规划
--教材建设
--政策支持
-教学设计
--教学设计
--教学改革
-教学资源
--课程标准
--教案
--企业案例
-模拟题库
--技术答疑
--习题库
-实践教学
--实训项目指导书
--实训项目资源
--教学条件
-拓展资源
--案例库
--素材库
--培训项目包
-特色创新
--课程特色