用Android搭建客户端手机和服务器交互开发实例_第1页
用Android搭建客户端手机和服务器交互开发实例_第2页
用Android搭建客户端手机和服务器交互开发实例_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文介绍了如何使用AndroidSSHJSONAD:笔者以前是学的Java EE,由于工程需要要开发Android,所以临时补了一个多星期,主要是手机端和效劳器端交互,双向开发的。首先在效劳器端,我承受的是SSHstruts2 集合了JSON的信息交互承受的JSON 来传输,由于在效劳器端用了Struts 2,所以我就用装了一个JSON插件。这样,很轻易的就把效劳器端的信息用JSON 的形式发送到了手机端。以下是代码:首先,在效劳器端搭建好SSH 框架,具体细节就不在陈述。struts.xml 配置如下:sult6.gin“result手机端的代码如下:可以达达节约手机和效劳器的交互,用单例实

2、现的:1. packagecom.jclick.cache;2.3. importcom.jclick.bean.User;4.5. publicclassCache6.7. privateUserUser;8.9. privateCache10.11. 12. /*构造单例*/privatestaticclassCacheHolderprivatestaticfinalCacheINSTANCE=newCache;15. publicCachegetInstancereturnCacheHolder.INSTANCE;18. publicUsergetUserreturnUser;21. p

3、ublicvoidsetUser(UserUser)this.User=User;24. 25.26. 27.28. packagecom.jclick.cache;29.30. importcom.jclick.bean.User;31.32. publicclassCache9./*构造单例*/privatestaticclassCacheHolderprivatestaticfinalCacheINSTANCE=newCache;42.publicCachegetInstancereturnCacheHolder.INSTANCE;45.public

4、UsergetUserreturnUser;48.publicvoidsetUser(UserUser)this.User=User;51.52.53. 接着开头书写手机端的协议1. tocol;2.importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.util.ArrayList;7.importorg.apache. . Response;importorg.apache. .NameValuePair;importorg.apache. .client. C

5、lient;importorg.apache. .client.entity.UrlEncodedFormEntity;importorg.apache. .client.methods. Post;importorg.apache. .impl.client.Default Client;importorg.apache. .message.BasicNameValuePair;importorg.json.JSONException;17.publicclassBaseProtocol20.private Client Client;private Post Request;24.25.p

6、rivateListnameValuePair=newArrayList();26.BaseProtocol Client=newDefault Client;29. 30.31. /*32. *向效劳器端发送恳求33. *paramurl*throwsException36. */protectedvoidpack(Stringurl)throwsException Client=newDefault Client;40. Request.setEntity(newUrlEncodedFormEntity(nameValuePair);response= Client.execute( Re

7、quest);43. 44.45. /*46. *得到返回数据47. *paramurl*return*throwsException51. */protectedvoidparsethrowsException55.BufferedReaderbufferedReader2=newBufferedReader(newInputStreamReader(response.getEntity.getContent);for(Strings=bufferedReader2.readLine;s!=null;s=bufferedReader2.readLine)sb.append(s);61. 62

8、. 63. 64.65. /*66. *向效劳器发送信息67. *paramkey*paramvalue70. */publicvoidaddNameValuePair(Stringkey,Stringvalue)nameValuePair.add(newBasicNameValuePair(key,value);73. 74.75. /*. 对象数据模型77. *return*throwsJSONException80. */publicJSONObjectgetJSONthrowsJSONExceptionreturnnewJSONObject(sb.toString);83. 84.85

9、. 86.87. tocol;88.importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.util.ArrayList;93.importorg.apache. . Response;importorg.apache. .NameValuePair;importorg.apache. .client. Client;importorg.apache. .client.entity.UrlEncodedFormEntity;importorg.apache. .cl

10、ient.methods. Post;importorg.apache. .impl.client.Default Client;importorg.apache. .message.BasicNameValuePair;importorg.json.JSONException;103.publicclassBaseProtocol106.private Client Client;private Post Request;110.111.ir;112.BaseProtocol Client=newDefault Client;115.116.117./*118.*向效劳器端发送恳求119.*

11、paramurl*throwsException122.*/protectedvoidpack(Stringurl)throwsException Client=newDefault Client;126. Request.setEntity(newUrlEncodedFormEntity(nameValuePair);response= Client.execute( Request);129.130.131./*132.*得到返回数据133.*paramurl*return*throwsException137.*/protectedvoidparsethrowsException141.

12、BufferedReaderbufferedReader2=newBufferedReader(tent);dReader2.readLine)sb.append(s);50.151./*152.*向效劳器发送信息153.*paramkey*paramvalue156.*/publicvoidaddNameValuePair(Stringkey,Stringvalue)nameValuePair.add(newBasicNameValuePair(key,value);159.160.161./*162.对象数据模型163.*return*throwsJSONExce

13、ption166.*/publicJSONObjectgetJSONthrowsJSONExceptionreturnnewJSONObject(sb.toString);169.170.接着是登陆协议,在这里我只是模拟登陆使用的一个类,仅供大家参考:1. tocol;2.3. importorg.json.JSONObject;4.5. importcom.jclick.bean.User;6.7. publicclassLoginProtocolextendsBaseProtocol8.9. privatefinalstaticStringURL=

14、“ :/localhost:8080/test/login“;10.publicbooleancheckLogin(Userusr)trypack(URL);parse;JSONObjectobj=this.getJSON;if(obj.getString(“result“).equals(“failed“)returnfalse;elsereturntrue;20. catch(Exceptione)e.printStackTrace;returnfalse;24. 25. 26.27. 28.29. tocol;30.31. importorg.j

15、son.JSONObject;32.33. importcom.jclick.bean.User;34.35. publicclassLoginProtocolextendsBaseProtocol36.37.privatefinalstaticStringURL=“ :/localhost:8080/test/login“;38.publicbooleancheckLogin(Userusr)trypack(URL);parse;JSONObjectobj=this.getJSON;if(obj.getString(“result“).equals(“failed“)returnfalse;

16、elsereturntrue;48.catch(Exceptione)e.printStackTrace;returnfalse;5. 然后是User 实体类,主要用于保存用户信息:1. packagecom.jclick.bean;2.publicclassUserprivateStringusername;privateStringpassword;publicStringgetUsername8. publicvoidsetUsername(Stringusername)this.username=username;11. publicStringgetPasswor

17、dreturnpassword;14. publicvoidsetPassword(Stringpassword)this.password=password;17. 18.19. 20.21. packagecom.jclick.bean;22.publicclassUserprivateStringusername;privateStringpassword;publicStringgetUsernamereturnusername;28.publicvoidsetUsername(Stringusername)this.username=username;31.publicStringg

18、etPasswordreturnpassword;34.publicvoidsetPassword(Stringpassword)this.password=password;37.38.39. 最终就是LoginActivity登陆的代码:privatevoidcheckedDatausername=(EditText)findViewById(R.id.username).getText.toString();password=(EditText)findViewById(R.id.password).getText.toString();4.Useruser=newUser;user.setUsername(username);user.setPassword(password);LoginProtocollogin=newLoginProtocol;10.if(result)SpiderCache.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论