当前位置:
文档之家› 物联网技术应用-终端远程控制摄像头
物联网技术应用-终端远程控制摄像头
物联网技术应用终端远程控制摄像头
目录 任务目标
知识准备
任务实现
通过网络通信以及WebView组件时时读取远程摄 像头所拍摄到的信息读取至服务器端。
数据传输的实现
终端远程控制摄像头
【任务目标】
1. 掌握Android中URL的基本知识 2. 掌握URL读取网络资源的方法 3. 掌握HTTP方式访问网络的方法 4. 掌握HttpURLConnection与HttpClient接口的用法 5. 掌握WebView组件的用法
【知识准备】
URL(Uniform Resource Locator)对象代表统一资源定位器, 它是指向互联网”资源”的指针。资源可以是简单的文件或目录, 也可以是对更复杂的对象的引用,例如对数据库或搜索引擎的查询。 通常情况而言,URL可以由协议名、主机、端口和资源组成。
格式:protocal://host:port/resourceName; URL类提供了一些构造器用于创建URL对象,一旦获得URL对象之 后,可以调用如下常用方法来访问这些URL对应的资源。 URL请求的类别分为二类,GET与POST请求。二者的区别在于: get请求可以获取静态页面,也可以把参数放在URL字串后面,传 递给servlet。 post与get的不同之处在于post的参数不是放在URL字串里面,而 是放在http请求的正文内。
HttpURLConnection没有提供的有些功能,HttpClient 也提供了,但它只是关注于如何发送请求、接收响应,以及 管理HTTP连接。使用HttpClient发送请求、接收响应很简单, 只要如下几步即可。
2. HttpClient接口
【知识准备】
1)创建HttpClient对象。 2)如果需要发送GET请求,创建HttpGet对象;如果需要发送 POST请求,创建HttpPost对象。 3)如果需要发送请求参数,可调用HttpGet、HttpPost共同的 setParams(HetpParams params)方法来添加请求参数;对于 HttpPost对象而言,也可调用setEntity(HttpEntity entity)方 法来设置请求参数。
1. HttpURLConnection接口
【知识准备】
在一般情况下,如果只是需要Web站点的某个简单页面提 交请求并获取服务器响应,HttpURLConnection完全可以胜任。 但在绝大部分情况下,Web站点的网页可能没这么简单,这些 页面并不是通过一个简单的URL就可访问的,可能需要用户登 录而且具有相应的权限才可访问该页面。在这种情况下,就需 要涉及Session、Cookie的处理了,如果打算使用 HttpURLConnection来处理这些细节,当然也是可能实现的, 只是处理起来难度就大了。
【知识准备】
HttpURLConnection是基于HTTP协议的,其底层通过 socket通信实现。如果不设置超时(timeout),在网络异常 的情况下,可能会导致程序僵死而不继续往下执行。可以通过 以下两个语句来设置相应的超时:
System.setProperty(".client.defaultConnectTi meout", 超时毫秒数字符串);
在类中,HttpURLConnection类是一种访问Htion,可用于向指定网 站发送GET请求、POST请求。它在URLConnection的基础上提供了如 下便捷的方法:
(1)int getResponseCode():获取服务器的响应代码。 (2)String getResponseMessage():获取服务器的响应消息。 (3)String getResponseMethod():获取发送请求的方法。 (4)void setRequestMethod(String method):设置发送请求 的方法。
HttpURLConnection的connect()函数,实际上只是建立 了一个与服务器的tcp连接,并没有实际发送http请求。无论 是post还是get,http请求实际上直到HttpURLConnection的 getInputStream()这个函数里面才正式发送出去。
1. HttpURLConnection接口
1. HttpURLConnection接口
【知识准备】
HttpURLConnection是一种多用途、轻量极的HTTP客户端,使用 它来进行HTTP操作可以适用于大多数的应用程序。虽然 HttpURLConnection的API提供的比较简单,但是同时这也使得我们 可以更加容易地去使用和扩展它。
System.setProperty(".client.defaultReadTimeo ut", 超时毫秒数字符串);
2. HttpClient接口
【知识准备】
简单来说,HttpClient就是一个增强版的 HttpURLConnection,HttpURLConnection可以做的事情 HttpClient全部可以做;
2. HttpClient接口
【知识准备】
在Android 2.2版本之前,HttpClient拥有较少的bug,因 此使用它是最好的选择。而在Android 2.3版本及以后, HttpURLConnection则是最佳的选择。它的API简单,体积较小, 因而非常适用于Android项目。压缩和缓存机制可以有效地减少 网络访问的流量,在提升速度和省电方面也起到了较大的作用。 对于新的应用程序应该更加偏向于使用HttpURLConnection,因 为在以后的工作当中我们也会将更多的时间放在优化 HttpURLConnection上面。
2. HttpClient接口
【知识准备】
4)调用HttpClient对象的execute(HttpUriRequest request) 发送请求,执行该方法返回一个HttpResponse。
5)调用HttpResponse的getAllHeaders()、 getHeaders(String name)等方法可获取服务器的响应头;调用 HttpResponse的getEntity()方法可获取HttpEntity对象,该对象 包装了服务器的响应内容。程序可通过该对象获取服务器的响应 内容。