ios - 使用 iOS 向服务器发送数据/从服务器接收数据的首选方法/格式?

标签 ios http

当我开始构建我的第一个 iPhone 应用程序的框架时,我想了解更多关于与 HTTP 服务器交互的“标准”或首选方法。我假设这些 iPhone 应用程序中的大多数都会启动 HTTP 连接来发送和接收数据。执行此任务的首选数据格式和方法是什么?

次要问题:是否有其他方式向服务器发送/接收数据?我应该避免使用 PHP Web 服务器作为与少数数据库交互的中间人吗?

当前进程:

出站:iOS -> Http 请求 -> PHP -> MySQL 数据库

入站:MySQL -> PHP -> JSON 数据 -> iOS

最佳答案

我会使用 XML 与您的服务器通信,除非您正在做一些特殊的事情(视频/音频或打包您自己的数据)。 Cocoa 内置了对 XML 的支持,因此可以加快开发过程。

还有其他方法可以与服务器通信。您可以编写自己的协议(protocol),该协议(protocol)只会被您的客户理解(最大安全性但可能难以维护或可能发现错误)。您可以使用其他人的框架(如 JSON)。

有关 JSON 的更多详细信息,请参阅此链接 iPhone/iOS JSON parsing tutorial

你可以试试 NSURLConnection。这通常是您最好的选择。这是访问网络资源的首选方法。请务必查看 NSURLConnection SSL HTTP Basic Auth 以了解如何使用 SSL。如果您正在调试并且您的证书不太受信任,请查看:如何使用 NSURLConnection 连接 SSL 以获得不受信任的证书?。

至于你的数据库问题。

我个人会使用直接与我的数据库通信的 PHP Web 服务器,因为 1. 我可以更改网络托管公司,我的 iOS 应用程序只需要知道域名 (www.example.com/?username=abc&password=0000&uuid=000000&data=PackagedData) 2. 我可以将我的数据库计划从免费升级到可以管理更多连接(或数据库类型)的计划,我只需要更新我的 PHP 脚本中的连接字符串(无需更新客户端 iOS 应用程序)

以下是您不想与数据库服务器直接通信的一些可怕原因 1. 如果您要存储敏感的非公开数据(用户名、文档、密码等),那么您将承担巨大的风险。聪明的黑客可以对您的应用程序进行逆向工程,找到您用来连接数据库的字符串,然后获得对您的数据库的访问权限(在您不知情的情况下)。可能使用数据或出售数据!

  1. 如果您决定选择新的数据库服务器,或者如果您的托管公司决定给您一个新的 IP(或您的数据库服务器的子域),那么您将必须立即更新所有客户端,并且您可能需要发送他们推送通知,告知他们您的应用程序将停止工作,除非他们升级。

关于ios - 使用 iOS 向服务器发送数据/从服务器接收数据的首选方法/格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335454/

相关文章:

iOS 自定义锁屏替代方案

ios - TableView didSelectRowAt IndexPath 没有被调用

ios - 隐藏键盘时隐藏快捷方式栏 ios(Ipad)

http - HATEOAS Rel - 有任何标准吗?

AngularJS - 多个指令实例多次调用 XHR

c# - HttpRequestHeader cookie 格式

ios - 请帮助我了解 IOS 7+ 图标和标题

ios - 更改 View 和设置标签会产生意想不到的后果

http - Expires vs max-age,如果两者都在 HTTP 响应中声明,哪个优先?

html - 不带参数发送的帖子