---恢复内容开始---

今天帮一个朋友改一个bug 他可以算是初学者吧 。我给他看了看代码,从代码和跟他聊天能明显的发现他对客户端与服务器交互 基本 不是很了解。所以我花了更多时间去给他讲客户端与服务器的关系。我觉得从这个高度去做客户端开发会对开发的提高有十倍甚至百倍的效果。我希望更多的人能理 解更多的人能收到帮助。所以把这个总结了一下发布出来。

首先:我介绍下服务器的一些东西

服务器开发是一门很深的学问不是一句话两句话能理解的,至少比android开发要复杂很多倍,至少想开发好是非常难的。这里只讲android需要理解的概念

服务器这里指的是web 服务器不是具体的机器

服务器 就是一个程序 这个程序 会接收请求 返回响应

简单理解就是一个   处理请求响应的小程序

不好理解 那我具体讲一下

就是 你给服务器一个请求 告诉他你想要的 他就给你一个响应 就是给你你想要的。 至于你用什么客户端他不关心的。你用浏览器 他不关心 你用 android手机他不关心 用ipad 其实他也不关心。 你只要有请求 我就给你响应。

什么还不好理解那我再具体下

比如你去商店买个雪糕 给他1块钱 告诉他 我要一个 蒙牛随便雪糕 他就给你一个蒙牛随便雪糕 , 只要他有就会给你,如果他没有就告诉你他没有。这个就是一个请求响应。

下面对号入座

ip 或者url 就是 商店的地址。你得知道去哪买

参数就是 一个蒙牛雪糕的id  在网络里一般是传id就ok了

返回就是给你一个随便雪糕。

至于你是你买 还是你妈妈买 还是你老板 。或者你老板的小秘买 基本是一样的 ,都是会返回你一个雪糕而已 。

总结一下就是。服务器写好了放那就行 ,用浏览器 测试一下,就知道 正不正确了。如果浏览器测试没有问题 一般在客户端发请求都会收到正常的响应。浏览器就是一个客户端,android手机也是客户端。虽然开发服务器很高大上。那是过去。在android 我们关系的就是我的请求会得到响应 具体响应什么 我们会约定好的。

了解了服务器在谈谈android开发

android应用开发一般就两个分支 一个是工具类的可能不是很需要从服务器获取数据

另一个就是浏览型的基本数据都是从服务器获取的。服务器返回什么我就显示什么,具体数据是我们之前约定好的 比如我想要蒙牛随便雪糕 他就会给我,他没给是他的问题,我只要告诉用户说服务器不给就ok了 。

具体开发时候可以绕过浏览器,我设计好接口 然后 设计好返回我就可以做测试了 具体服务器对接其实不会影响我这边的具体问题的。这样开发客户端就非常简单了。在没有服务器的情况下也可以做简单的开发,虽然会比有的时候麻烦一点 但是也是值得推荐的。不要把一切工作推到服务器开发完成。

具体开发流程就非常简单了。

比如我开发一个用户模块。包括登录,注册,修改,获取用户列表,删除用户。典型的crud模式。最典型的整删改查都有了,服务器交互就是简单的整删改查而已。

这里要介绍一个大名鼎鼎的库 google的 gson库。自从用了这个,做交互方便了不是一点半点

gson 支持 从对象 到 json字符串的转换 就一句话 gson。tojson(Object);就完成了即使是集合也没有问题。什么他竟然还支持泛型。简直高大上啊。

至于json 转换成对象就要麻烦一点点 怎么麻烦呢,他需要获取一个Type就是想要转换的实体类的类型 代码如下

Gson gson = New Gson();获取gson对象

Type type = new TypeToken<User>() {}.getType(); 获取转换类型

User user= gson.fromJson(jsonStr, type); 转换成具体对象

什么就两行代码就把json字符串转换层user对象了 什么这个也支持泛型,还支持泛型嵌套。而且效率非常高,速度非常快。简直太高大上了。

了解gson 做开发就方便了,具体流程

登录 我传new 一个user对象转换成 json 字符串 发送给服务器  服务器解析json成user 对象判断用户是否存在 密码是不是正确 告诉我登录是否成功就ok了。

注册道理是一样的 都是发送一个json 而已。

修改用户信息麻烦一点 就是 需要先查询用户信息。想修改就一定要知道修改谁,比如我登录了 肯定会获取一个登录的id 就是用户id 那我想获取我的信息就会发送我的id告诉服务器我要获取信息 服务器就会返回我的信息 服务器返回的是json 字符串 我转换层user对象 然后我会修改 在发给服务器。服务器告诉我是否成功就ok

基本所有的增删改查都是简单的服务器交互而已。其实腾讯新闻 啦。新浪微博啦。团购网站啦 都是可以这样的交互的 。而且非常标准。

你会一个模块其实别的模块 基本都是一摸一样的。只是实体类还了而已可能是 User  Student  也可能是 Type 或者是 House 道理都是一样的

转自http://www.tuicool.com/articles/iymYnq

---恢复内容结束---

转载于:https://www.cnblogs.com/zhy7104/p/5436156.html

服务器与客户端交互(简述)相关推荐

  1. Redis源码剖析(一)服务器与客户端交互流程

    Redis中的C/S模型 Redis底层还是基于网络请求的,对于单机数据库而言,网络请求仅仅是在一台机器上交互,即服务器客户端都在一台计算机上 当在终端输入redis-serve时,便启动了一个Red ...

  2. 模拟服务器和客户端交互的python脚本

    脚本: 模拟服务器和客户端交互: import argparse, socket from datetime import datetimeIP = "127.0.0.1" COD ...

  3. 网络编程:使用tcp协议实现服务器与客户端交互

    服务器 ************************************************************************************************ ...

  4. strut2服务器与android交互数据,用Android搭建客户端 手机和服务器交互开发

    首先在服务器端,采用的是SSH框架,struts 2集合了JSON插件,服务器和客户端的信息交互采用的JSON来传输,由于在服务器端用了Struts 2,所以我就用装了一个JSON插件.这样,很轻易的 ...

  5. 【Java 网络编程】UDP 服务器 与 客户端持续交互 案例

    文章目录 I UDP 交互原理 II UDP 服务器端代码示例 III UDP 客户端代码示例 IV 服务器 客户端 运行结果 I UDP 交互原理 1. UDP 单播传输流程 : A 给 B 发送数 ...

  6. Redis源码解析:14Redis服务器与客户端间的交互

    Redis服务器是典型的一对多服务器程序,通过使用由IO多路复用技术实现的文件事件处理器,Redis服务器使用单线程单进程的方式来处理命令请求,并与多个客户端进行网络通信. Redis客户端与服务器之 ...

  7. 实现服务器和客户端数据交互,Java Socket有妙招

    摘要:在Java SDK中,对于Socket原生提供了支持,它分为ServerSocket和Socket. 本文分享自华为云社区<Java Socket 如何实现服务器和客户端数据交互>, ...

  8. Android客户端与后台服务器的数据交互

    Android客户端与服务器的数据交互 这是今年7月份时在一家公司实训时自己做的一个小项目,仅仅是一个简单的模拟Android客户端与服务器的数据交互,中间会有串口通信,以及利用JDBC连接Mysql ...

  9. Ajax系列之三——服务器客户端交互

    Ajax最大的优越就是异步编程,而异步交互的基础是服务器和客户端间的交互.两者之间交互的底层原理不怎么明白,只知道他们之间需要遵循一些协议,这篇博客的重点是从代码的角度,结合实例,从应用层的角度,学习 ...

最新文章

  1. jQuery 2.0.3 源码分析core - 整体架构
  2. JAVA线程池的分析和使用
  3. Selenium3自动化测试——3. 控制浏览器
  4. android 入门-引用库项目
  5. Python字符串常用操作
  6. python的property用法_在python中property怎样使用-百度经验
  7. 疑似小米10超大杯入网:搭载骁龙865+/120Hz高刷屏加持
  8. win10 安装msys2 和 ruby
  9. 易错点 默认参数陷阱
  10. 通过配置IP SLA跟踪静态路由
  11. Atitit。Js调用后台语言 java c#  php swing android  swt的方法大总结
  12. 玩转 Flowable 流程实例
  13. MSP430单片机,大学的回忆
  14. 分子模拟软件amber_分子模拟周刊: 第 23 期
  15. oracle dbms_utility,dbms_utility的两个有用方法
  16. uni-app中使用HTML5 Plus
  17. 基于深度学习的推荐系统(一)
  18. 深圳内推 | 香港中文大学(深圳)路广利老师招聘NLP方向研究助理
  19. 计算机网络协议分为哪几层?7层协议、5层协议、4层协议。
  20. html设置旋转中心兼容ie,IE中的CSS旋转属性

热门文章

  1. 卫星技术在物流行业的运用
  2. Part 12(1) 广义积分(无穷积分和瑕积分)
  3. python的drop duplicates_pandas.DataFrame.drop_duplicates 用法介绍
  4. Java后台向苹果APNS推送文字,图片,视频功能
  5. 把项目移到另外一台电脑的新手配置教程
  6. 分布式技术点和技术趋势
  7. 基于C语言实现的宾馆住宿信息管理系统
  8. 程序员不懂过七夕?你怕是有什么误解
  9. matlab和robotstudio,MATLAB与Robotstudio联合仿真案例(机器人绘图)
  10. 突然爆红的子弹短信会威胁微信的统治地位吗?从腾讯的这个操作就知道了