- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于HTTP安卓与服务器交互方法实现
基于HTTP安卓与服务器交互方法实现
摘 要:文章主要实现了基于HTTP的安卓与服务器交互的几种实用方法。简析安卓上传数据和下载数据的传输过程以及服务器接受收据并响应的过程。通过比较各参数,以简单直接的方法实现上述目的。文章也附上实际案例,由安卓端的上传和下载文字及图片,演示了客户端对于数据请求的发送、服务器对该请求的处理、服务器向安卓发送数据以及安卓处理服务器相应的整个流程。验证了文中所介绍方法的实用性。
关键词:安卓;HttpClient;通信
2014年7月,市场分析机构Strategy Analytics公布了2014年第二季度智能手机操作系统全球分布情况。报告显示,目前安卓操作系统的全球市场份额已达85%(有史以来最高比重),而苹果的iOS、微软的WindowsPhone等系统占比均有所下滑[1]。近年来,在谷歌努力的研发和推广下,安卓迅速兴起和发展,碎片化问题也随着Android 4.4的发布得到了改观。开发者们对安卓开发的热情也随之空前的高涨。然而除了诸如计算机、录音机、手电筒等完全本地化的应用,目前安卓手机上大部分应用几乎都要和网络打交道。作为一个开发者,掌握安卓的通讯机制是十分必要的。目前而言,安卓与服务器的通讯最为普遍。这种通讯经常采用超文本传送协议,即HTTP(Hypertext transfer protocol)。另外也有FTP(File Transfer Protocol)、Telnet、SMTP(Simple Mail Transfer Protocol)等几种不同的协议,但考虑到使用的广泛性,文章仅介绍最常用的基于HTTP的通交互方式。在这当中较为常用的访问网络方法有如下几种:直接使用统一资源定位符,即URL(Uniform Resource Locator)的HttpURLConnection、Apache的HttpClient、还有就是利用WebView等等。这几种方法各有利弊。WebView主要是用来显示网页的,而就数据的传输而言,前两者使用广泛。包提供了通过HTTP访问资源的基本功能,即HttpURLConnection。它是URLConnection的一个子类,是一个轻量级的类,它的实例可以共享连接到HTTP服务器的基础网络。HttpURLConnection因为较为轻便,因此理论上传输速度较快,另外其可扩展性也较强。但是由于协议应用本身的复杂性,使得在大量实际项目单纯使用Java语言的软件开发工具包进行HTTP编程仍然相对比较困难。而且在Android2.2之前有一个未修复的错误。针对这种情况,开源软件组织Apach推出了HttpClient开源组件,并且提供稳定持续的升级版本。它提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP 协议最新的版本和建议。它封装了很多实用的方法共开发者调用,开发者无需再写大量代码。因此在实际项目中采用HttpClient组件进行HTTP协议编程是一种高效经济的解决方案[2]。因此,文章介绍的与服务器交互的方法是基于HttpClient的。
1 安卓端
1.1 安卓端的上传
首先是请求方式的选择。众所周知,HTTP的请求方法有GET、POST、HEAD、PUT、DELETE、TRACE和OPTIONS几种,其中用的较为广泛的有GET和POST两种。相对而言,我更加推荐使用POST方法。原因是GET方法的请求中只包含request-line部分,它将数据直接添加在URI中,这样的话一些重要且私密的数据就会暴露在地址栏里。而POST则可以通过添加request-body,将数据放进body里再进行传送,这样不会出现数据暴露的安全隐患。因此相较于GET方法,POST的传输数据量更大,安全性也更高。
要注意的是,使用POST方式看不到传送的数据不是因为POST方式自身的处理,而是因为浏览器做了相应的处理和限制,因此使数据不会被明显暴露在浏览器界面上。但是只要利用一些工具还是可以查找到数据的。所以从这个角度讲,GET和POST都是不安全的。但是相对而言,GET是把数据直接显示在地址栏里,而POST则要隐秘许多。因此POST相对GET确实比较安全。
在安卓客户端要使用HttpClient首先要创建一个它的实例。由于安卓自带有HttpClient,所以可以直接调用系统应用程序编程接口来创建。此后需要创建请求方式的实例。
HttpPost post=new HttpPost(URL);
注意,这里的URL是请求的地址,务必要填写,不然的话在执行POST方法时会报一个NullPointer的空指针错误。由于文章中的服务器采用的是Struts2+Hibernate框架,因此URL
您可能关注的文档
最近下载
- 2024-2025学年 八年级上册物理(2024年新教材)教材课后习题-练习与应用(原动手动脑学物理).docx VIP
- 建筑施工承插型盘扣式钢管脚手架安全技术标准 JGJT231-2021.pdf VIP
- 动物学全套课件.pptx VIP
- 公务礼仪培训.pptx VIP
- (2025年高考真题)2025年全国高考一卷英语真题(原卷版).docx VIP
- Audition实例教程(Audition CC 2019)全套PPT课件.pptx VIP
- 中国糖尿病足诊治指南(全文版).doc VIP
- GA602-2013 干粉灭火器装置.docx VIP
- 初中校园心理剧剧本集合3篇.docx VIP
- 冷库安全操作规程.docx VIP
原创力文档


文档评论(0)