用Android搭建客户端 手机和服务器交互开发实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文介绍了如何使用Android搭建客户端,实现手机和服务器的交互。让我们了解如何采用SSH框架,把服务器端的信息用JSON的形式发送到手机端。
AD:笔者以前是学的Java EE,由于项目需要要开发Android,所以临时补了一个多星期,主要是手机端和服务器端交互,双向开发的。
首先在服务器端,我采用的是SSH框架,struts 2集合了JSON插件,服务器和客户端的信息交互采用的JSON来传输,由于在服务器端用了Struts 2,所以我就用装了一个JSON 插件。这样,很轻易的就把服务器端的信息用JSON的形式发送到了手机端。以下是代码:首先,在服务器端搭建好SSH框架,具体细节就不在陈述。struts.xml配置如下:
1.
2. > 3. sult> 4. 5. 6. 7. 8. gin"> 9. 10. 11. 手机端的代码如下: 首先,手机端有一个缓存类,主要用于缓存一些手机端需要访问的数据,这样的好处是可以达达节省手机和服务器的交互,用单例实现的: 1.packagecom.jclick.cache; 2. er; 4. 5.publicclassCache{ 6. 7.privateUserUser; 8. 9.privateCache(){ 10. 11.} 12./**构造单例*/ 13.privatestaticclassCacheHolder{ 14.privatestaticfinalCacheINSTANCE=newCache(); 15.} 16.publicCachegetInstance(){ 17.returnCacheHolder.INSTANCE; 18.} 19.publicUsergetUser(){ 20.returnUser; 21.} 22.publicvoidsetUser(UserUser){ er=User; 24.} 25. 26.} 27. 28.packagecom.jclick.cache; 29. er; 31. 32.publicclassCache{ 33. 34. privateUserUser; 35. 36. privateCache(){ 37. 38. } 39./**构造单例*/ 40. privatestaticclassCacheHolder{ 41. privatestaticfinalCacheINSTANCE=newCache(); 42. } 43. publicCachegetInstance(){ 44. returnCacheHolder.INSTANCE; 45. } 46. publicUsergetUser(){ 47. returnUser; 48. } 49. publicvoidsetUser(UserUser){ er=User; 51. } 52. 53.} 接着开始书写手机端的协议,用户向服务器发送请求,同时服务器反馈给手机端信息的: 1.packagecom.jclick.protocol; 2. 3.importjava.io.BufferedReader; 4.importjava.io.InputStreamReader; 5.importjava.util.ArrayList; 6.importjava.util.List; 7. 8.importorg.apache.http.HttpResponse; ValuePair; 10.importorg.apache.http.client.HttpClient; 11.importorg.apache.http.client.entity.UrlEncodedFormEntity; 12.importorg.apache.http.client.methods.HttpPost; 13.importorg.apache.http.impl.client.DefaultHttpClient; 14.importorg.apache.http.message.BasicNameValuePair; 15.importorg.json.JSONException; 16.importorg.json.JSONObject; 17. 18.publicclassBaseProtocol{ 19.privateStringBuildersb=newStringBuilder(); 20. 21.privateHttpClienthttpClient; 22.privateHttpPosthttpRequest; 23.privateHttpResponseresponse; 24. 25.privateList ); 26. 27.BaseProtocol(){ 28.httpClient=newDefaultHttpClient(); 29.} 30. 31./** 32.*向服务器端发送请求 33.* 34.*@paramurl 35.*@throwsException 36.*/ 37.protectedvoidpack(Stringurl)throwsException{ 38.httpClient=newDefaultHttpClient(); 39.httpRequest=newHttpPost(url); 40. 41.httpRequest.setEntity(newUrlEncodedFormEntity(nameValuePair));