位置: 编程技术 - 正文
推荐整理分享《深入理解Android网络编程》第3章(深入理解rcu),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:《深入理解计算机系统》读后感2000,《深入理解中国特有的教育家精神》心得体会,深入理解osgi,什么叫深入理解,《深入理解操作系统》,《深入理解中国特有的教育家精神》心得体会,《深入理解计算机系统》读书报告,《深入理解计算机系统》读后感2000,内容如对您有帮助,希望把文章链接给更多的朋友!
GET 请求获取Request-URI所标识的资源 POST 在Request-URI所标识的资源后附加新的数据
GET方式提交的数据最多只能有字节(URL+参数),而POST则没有此限制。 官方说明:
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
OK 客户端请求成功
3.2 Android中的HTTP编程 3.2.1 HttpClient和URLConnection HTTP协议是现在Internet上使用得最多、也是最重要的协议之一,越来越多的Android应用程序需要直接通过HTTP协议来访问网络资源。虽然在Android的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,Android原生提供的功能还不够丰富和灵活。HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且支持HTTP协议最新的版本和建议。 一般情况下我们使用浏览器来访问一个Web服务器,用来浏览页面查看信息或者提交一些数据等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及通过加密方式传输,如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过用户可能在某些时候想通过自己的程序来使用别人所提供的服务页面,比如从网页中“抓取”一些数据;利用某些站点提供的页面来完成某种功能等,例如通过已有网站提供的服务去查看某个手机号码的归属地。考虑到一些服务授权的问题,很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及COOKIE的处理问题。这些问题有了HttpClient就很容易解决了!HttpClient就是专门设计用来简化HTTP客户端与服务器间各种通信编程的。通过它可以让原来很复杂的事情现在轻松解决。 URL(Uniform Resource Locator)代表统一资源定位符,Internet上的每个资源都具有一个唯一的名称标识,通常称为URL地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是Internet上的站点,因此URL是指向互联网“资源”的指针。URLConnection则代表了应用程序和URL之间的通信链接,通过URLConnection类的实例可以读取和写入此URL应用的资源。本节后面会给出使用URLConnection获取网络信息的实例。
3.2.2 Post和Get在HttpClient的使用 HttpClient提供的主要的功能如下: 实现了所有HTTP的方法(GET、POST、PUT、HEAD等) 支持自动转向 支持HTTPS协议 支持代理服务器 HTTP请求方法中最常用的是GET方法和POST方法。 1)GET方法 GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始。
上面的GET方法是以InputStream的形式返回页面的信息,很多情况下需要以String-Builder、String等字符串的格式。下面的方法把InputStream格式转为StringBuilder和String格式。
使用HttpClient需要以下6个步骤: 步骤1 创建HttpClient的实例。 步骤2 创建某种连接方法的实例,对于get方法是GetMethod,而对于post方法是PostMethod。 步骤3 调用步骤1中创建好的实例的execute方法来执行步骤2中创建好的method实例。 步骤4 读response。 步骤5 释放连接。 步骤6 对得到的内容进行处理。
3.2.3 实战案例:使用HttpClient和URLConnection访问维基百科/////
3.3 Android处理JSON 3.3.1 JSON简介 JSON指的是JavaScript对象表示法(JavaScript Object Notation),它是一种轻量级的文本数据交换格式,类似于XML,但比XML更小、更快、更易解析。 JSON是基于JavaScript的一个子集,它使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。这些特性都使得JSON成为理想的数据交换语言,使其易于人们阅读和编写,同时也易于机器解析和生成。 JSON的优点如下: 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。 易于解析语言,客户端JavaScript可以简单地通过eval()进行JSON数据的读取。 支持多种语言,包括ActionScript、C、C#、ColdFusion、Java、JavaScript、Perl、PHP、Python、Ruby等服务器端语言,便于服务器端的解析。 众多服务器端的对象、数组等能够直接生成JSON格式,便于客户端的访问提取。 因为JSON格式能够直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,但是完成的任务不变,且易于维护。 JSON用于描述数据结构,有以下两种形式。 (1)“名称/值”对的集合(A collection of name/value pairs) “名称/值”对的集合形式又称为JSON Object,其名称和值之间使用“:”隔开,一般的形式如下: {name:value} 例如:{ “Width”:”” , “Height”:”” } 其中名称是字符串;值可以是字符串、数值、对象、布尔值、有序列表或者null值。字符串是以”“括起来的一串字符;数值是一系列0~9的数字组合,可以为负数或者小数,还可以用e或者E表示为指数形式;布尔值表示为true或者false。 上述是以“{”开始,并以“}”结束的一系列非排序的“名称/值”对(每个“名称/值”对之间使用“,”分隔)。不同的语言中,这种“名称/值”可以理解为对象(object)、记录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、有键列表(keyed list)或者关联数组(associative array)等。
(2)值的有序列表(An ordered list of values) 值的有序列表形式又称为JSON Array。在大部分语言中,值的有序列表被理解为数组(array),一个或者多个值用“,”分隔后,使用“[”和“]”括起来就形成了这样的列表,如下所示: [collection, collection] 例如: { “employees”: [ { “Width”:”” , “Height”:”” }, { “Width”:”” , “Height”:”” }, { “Width”:”” , “Height”:”” } ] }
3.3.2 JSON数据解析 解析JSON数据时,首先需要明确待解析的是JSON Object还是JSON Array,然后再解析。举例如下。 (1)解析JSON Object之一 下面是一个简单的JSON Object,name为名称,Lili是name的值,将name和Lili用“:”隔开,其文本如下。 {“name”:”Lili”} JSONObject.getString(”String”)方法可以得到JSON对象中String名称对应的值。下面是对上面JSON对象的解析方法: // 新建JSONObject, jsonString字符串中为上面的JSON对象的文本 JSONObject demoJson = new JSONObject(jsonString); // 获取name名称对应的值 String s = demoJson.getString(“name”); (2)解析JSON Object之二 下面是一个包含两个“名称/值”对的JSON对象,两个“名称/值”对分别是”name1”:”android”和”name2”:”iphone”,中间使用“,”隔开,其文本如下:
上面的JSON对象中包含了5个“名称/值”对,其中名称为Strings的对应的值本身也是一个包含2个“名称/值”对的JSON对象;名称为Number的对应的值为一个JSON Array;名称为String的对应的值为一个字符串;名称为Int的对应的值为一个整型;名称为Boolean的对应的值为布尔型。 构建上述文本的主要代码如下:
3.3.4 实战案例:JSON解析wikipedia内容 下面的实例将解析以JSON表现的wikipedia的内容。wikipedia的API网址是 en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=Android&format=json 其显示的内容为:
3.4 Android处理SOAP 3.4.1 SOAP简介 简单对象访问协议(Simple Object Access Protocol,SOAP)是一种标准化的通信规范,主要用于Web服务(Web service)。SOAP的出现可以使网页服务器(Web Server)从XML数据库中提取数据时,无需花时间去格式化页面,并能够让不同应用程序之间通过HTTP协议,以XML格式互相交换彼此的数据,使这个交换过程与编程语言、平台和硬件无关。此标准由IBM、Microsoft、UserLand和DevelopMentor在年共同提出,并得到IBM、Lotus(莲花)、Compaq(康柏)等公司的支持,于年提交给万维网联盟(World Wide Web Consortium,W3C)。目前SOAP 1.1版是业界共同的标准。 SOAP基于XML标准,用于在分布式环境中发送消息,并执行远程过程调用。使用SOAP,不用考虑任何特定的传输协议(尽管通常选用HTTP协议),就能使数据序列化。 SOAP的优点如下: SOAP是可扩展的。SOAP无需中断已有的应用程序,SOAP客户端、服务器和协议自身都能发展。而且SOAP能极好地支持中间介质和层次化的体系结构。 SOAP是简单的。客户端发送一个请求,调用相应的对象,然后服务器返回结果。这些消息是XML格式的,并且封装成符合HTTP协议的消息。因此,它符合任何路由器、防火墙或代理服务器的要求。 SOAP是完全和厂商无关的。SOAP可以相对于平台、操作系统、目标模型和编程语言独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。 SOAP与编程语言无关。SOAP可以使用任何语言来完成,只要客户端发送正确SOAP请求(也就是说,传递一个合适的参数给一个实际的远端服务器)。SOAP没有对象模型,应用程序可以捆绑在任何对象模型中。 3.4.2 SOAP消息 1.SOAP消息简介 SOAP使用Internet应用层协议作为其传输协议。SMTP以及HTTP协议都可以用来传输SOAP消息,SOAP亦可以通过HTTPS传输。一条SOAP消息就是一个普通的XML文档,包含下列元素: 必需的Envelope元素,可把此XML文档标识为一条SOAP消息。 可选的Header元素,包含头部信息。 必需的Body元素,包含所有的调用和响应信息。 可选的Fault元素,提供有关在处理此消息时发生错误的信息。 SOAP消息的重要的语法规则如下: SOAP消息必须使用XML来编码。 SOAP消息必须使用SOAP Envelope命名空间。 SOAP消息必须使用SOAP Encoding命名空间。 SOAP消息不能包含DTD引用。 SOAP消息不能包含XML处理指令。
ListView滑动删除 ,仿腾讯QQ 转载请表明出处:
类型为 GestureTest 的方法 onDown(MotionEvent)必须覆盖或实现超类型方法 出现类错误的原因可能为导入外部类时导入错误的包中的类,因为有的类在好几个包中有,比如说题目中的OnGestureListener这个借口,在GestureOverlayView中有
Android启动过程及FrameWork初始化 Android启动时,首先通过Bootloader加载Linux内核,然后调用init进程对各种设备进行初始化,运行FrameWork所需的各种Deamon,ContextManager,MediaServer,Zygote等。1、Cont
标签: 深入理解rcu
本文链接地址:https://www.jiuchutong.com/biancheng/368582.html 转载请保留说明!上一篇:android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)(android的开发)
友情链接: 武汉网站建设