iOS客户端与服务器的数据交互总结

iOS客户端与服务器的数据交互总结,第1张

前言:

本文总结了iOS客户端服务器进行交互时,采用 RESTful API + Json 的交互方式,针对不 同的数据形式以及不同的解析方法,如有不足之处,欢迎指正。

先了解一下相关的基本概念。

HTTP通信:

即使用HTTP协议进行通信,工作原理是客户端向服务器端发送一条HTTP请求,服务器收到之后先 解析客户端的请求,之后会返回数据给客户端,然后客户端再对这些数据进行解析和处理。HTTP 连接采取的是“请求—响应”方式,即在请求时建立连接通道,当客户端像服务器端发送请求时,服 务器端才能向客户端发送数据。

Socket通信:Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信。通过建立 socket连接,可为通信双方的数据传输传提供通道。Socket的主要特点有数据丢失率低,使用简 单且易于移植。Socket类似于peer to peer的连接,一方可随时向另一方喊话。

小结:HTTP和Socket都是基于TCP协议的。使用两种通信方式的情况是: 使用HTTP的情况:双方不需要时刻保持连接在线,比如客户端资源的获取、文件上传等。

使用UDP的情况:大部分即时通讯应用(QQ、微信)、聊天室、苹果APNs等。

主要有四种:

数据流

1从web服务器响应到手机终端的数据 一般打包在一个字节数组中,这个字节数据中包含了不同的 数据类型,客端端采取Java数据流和过虑流的方式从字节数组中取出各种类型的数据。

这种交互方式我在学习iOS之初用过,实际项目中并没有发现哪家公司在用。这种方式了扩展 了iOS平台在访问Web服务器进行交互时的解析数据能力,仅供研究学习。

2XML Webservice的标准数据格式。 Protocol Buffers

3Protocol Buffers 是一种轻便高效的结构化数据存储格式,支持跨平台。它很适合做数据存储或 RPC 数据交换格式。比 JSON 最大的优点就是传输的时候数据体积可以压缩很小,传输效率比较 高。本人在这个在项目中没有用到过。

4JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。毫无疑问,大家最常用。

本文重点会介绍关于Json数据格式 的常用格式。

Json数据格式 的采用,根据业务情况,一般是团队中的共识。技术的迭代更新,到后期基本都会考虑多 个平台的通用性、可移植性和可读性。比如 我们开发团队,有移动端开发(Android、iOS)、前端开发 (H5开发)和后台开发(golang开发)。

关于服务器的开发规范,我们先来了解一下。

服务器开发规范 我们采用的是 RESTful , RESTful 是目前最流流行的 API设计规范,用于web数据接

口的设计。

• 面面向资源(URI),具有解释性;

• 行为(GET / POST / PUT / PATCH / DELETE)与资源(URI)分离,更更加轻量量;

• 数据描述简单,使用用JSON、XML、Protocol Buffers即可全覆盖, 主要使用用JSON;

它的核心原则是定义用少量方法就能操作的命名资源。资源和方法可视为API的 和动词。

• GET :读取(Read)

• POST :新建(Create)

• PUT :更新(Update),通常是全部更更新

• PATCH :更新(Update),通常是部分更更新

• DELETE :删除(Delete)

项目搭建之始,客户端和服务器一般用 Get 和Post的方式来交互,随着业务的演进和技术的规范迭代, 到后期我们都得按规范来。于是 我们采用了上述几种方式来设计服务器接口,相应地,移动端的请求方 式也得与之对应。

至此,不在赘述 RESTful API 的设计规范,可自行百度了解更多。

接口的数据一般都采用JSON格式进行传输,不过,需要注意的是,JSON的值只有六种数据类型:

•Number:整数或浮点数

•String:字符串

•Boolean:true 或 false

•Array:数组包含在方括号 [] 中

•Object:对象包含在大括号 {} 中

•Null:空类型

传输的数据类型不能超过这六种数据类型,不能用Date数据类型,不同的解析库解析方式不同,可能会 导致异常,如果遇到日期的数据,最好的方式就是使用毫秒数表示日期。

本文总结了iOS与服务器的交互方式和数据类型,并总结了在实际项目的简单运用。数据格式的运

用场景远不止上面提到的几种场景,后期会持续完善,如有不足之处,欢迎指出。

做安卓开发软件环境:Eclipse+ADT 硬件环境:电脑 服务器:单机的app不需要,需要的网上租 服务器的软件环境和电脑网站一样:服务器tomcat,JBoss,WebSphere,WebLogic,Resin。数据库:MySQL,Oracle,SqlServer 手机端:SQLite

如果你是苹果电脑,MacOSX系统已经自带了Apache服务器,并且自带php编译器打开终端,输入sudoapachectlstartsudo表示用root权限运行输入密码,输入时无提示,输入完后回车确认打开浏览器,在浏览器中输入本机ip地址进入系统偏好设置-网络可查看本机ip此时暂不开启php编译器,在文本中编写一个静态网页

ios开发教程

第一课oc实现类的定义

第二课oc实现对象的定义

开启阿帕奇服务器之后,电脑就是一个web服务器,将html的文本保存在桌面上,并利用复制粘贴的功能将其保存在磁盘目录下,即根目录下。资源库-WebServer-Documents,改过程中会提示你出入管理员密码,可利用显示中的显示文件路径。此时打开浏览器输入你的ip地址即可查看到该页面。只要将文件放到该路径下,所有的主机都可以看到你的网页。要想用网页实现一个用户登录的功能,就需要一个动态的网页,必须开启php模块。开启php模块要先进apache的配置文件。新建一个文本,创建一个php文件将其保存到桌面上,并用复制粘贴的功能将其保存到磁盘目录下的资源库-WebServer-Documents下开启php编译器,打开终端输入cd/cdetccdapache2/之后就进入apache2的目录下,可输入ls查看目录。输入sudovihttpdconf回车在apache的配置信息中,可以看到一个#loadModolephp5_module的模块,我们需要将其前面的#删除,将光标移动到#位置,按一下键盘上的“i”,可以看到#已经消失,然后按esc键,输入“:x“表示保存,按回车确认。\":q\"表示不保存退出。执行sudoapachectlstop在重新启动sudoapachectlstart回车确认再次访问你的ip地址进入php文件会发现输出结果时7,查看源码时也是7。新建一个页面作为登录界面loginhtml

留言系统用户登录

保存到桌面。双击打开之后把编码改成utf8,可以看到登录界面。新建一个logincheckphp文件hereretry\"}

打开手机服务器需要使用专门的软件或解决方案来实现。以下是一些常见的打开手机服务器的方法:

1使用Firefly云手机服务器:Firefly云手机服务器是基于ARM集群芯片和虚拟化技术的一站式解决方案,支持多开系统、一键操控、多屏控制、应用多开等功能,可以将数百台真实手机集成在一台服务器上。详细信息请参考

2使用Linux Deploy:Linux Deploy是一款在Android手机上运行Linux操作系统的应用程序,可以将手机作为服务器使用。详细信息请参考。

3安装其他服务器软件:可以根据需要安装其他的服务器软件,如FTP服务器、Web服务器等。具体步骤和方法请参考相应的软件说明文档。

请注意,在使用手机服务器时需要考虑手机的性能、电量和网络环境等问题,同时也要保证服务器的安全性和稳定性,避免数据泄露或服务中断的风险。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » iOS客户端与服务器的数据交互总结

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情