- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
android应用开发:android网络通信
作者:近乎团队(英文:Spacebuilder)
众所周知,AndroidHTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式。
HTTP协议简介:
????????HTTP?(Hypertext?Transfer?Protocol?),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种协议。
????????HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。??在HTTP?1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。??在HTTP?1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
????????由于HTTPHTTP连接是一种“短连接”、“无状态”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
????????
????????基于HTTP1.0HTTP协议也被认为是无状态的协议。
????????HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持。当客户端使用HTTP1.1协议连接到服务器后,服务器就将关闭客户端连接的主动权交还给客户端;也就是说,只要不调用Socket类的close方法关闭网络连接,就可以继续向服务器发送HTTP请求。
????????HTTP连接使用的是“请求—响应”的方式(2次握手),不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。而Socket连接在双方建立起连接后就可以直接进行数据的传输
?????????HTTP协议的特点:?????????支持B/SC/S模式;
????????简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GETHEAD、POST。
????????灵活:HTTP?Content-Type?加以标记;
????????无状态:HTTP?
????????HTTP协议请求方法:
????????请求行中包括了请求方法,解释如下:
????????GET?Request-URI?所标识的资源;
????????POST?在Request-URI?所标识的资源后附加新的数据;
????????HEAD?请求获取由Request-URI?所标识的资源的响应消息报头?????????
????????PUT?请求服务器存储一个资源,并用Request-URI?作为其标识
????????DELETE?请求服务器删除Request-URI?所标识的资源;
????????TRACE?请求服务器回送收到的请求信息,主要用于测试或诊断
????????CONNECT?保留将来使用
????????OPTIONS?请求查询服务器的性能,或者查询与资源相关的选项和需求
????????
????????Get与Post请求区别:
????????Post请求可以向服务器传送数据,而且数据放在HTML?HEADER内一起传送到服务端URL地址,数据对用户不可见。而get是把参数数据队列加到提交的URL中,值和表单内各个字段一一对应,?例如(/s?w=%C4inputT=2710)
????????get?2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
????????get安全性非常低,post安全性较高。
????????项目结构图:
?????????
??????????get
??????????get机制用的是在URL地址里面通过?号间隔,然后以name=value的形式给客户端传递参数。所以首先要在Android工程下的AndroidGetTest.java中onCreate方法定义好其URL地址以及要传递的参数,然后通过URL打开一个HttpURLConnection链接,此链接可以获得InputStream字节流对象,也是往服务端输出和从服务端返回数据的重要过程,而若服务端response.getInputStream.write()往andorid返回信息时候,就可以通过InputStreamReader作转换,将返
文档评论(0)