当我开始构建我的第一个 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. 如果您要存储敏感的非公开数据(用户名、文档、密码等),那么您将承担巨大的风险。聪明的黑客可以对您的应用程序进行逆向工程,找到您用来连接数据库的字符串,然后获得对您的数据库的访问权限(在您不知情的情况下)。可能使用数据或出售数据!
- 如果您决定选择新的数据库服务器,或者如果您的托管公司决定给您一个新的 IP(或您的数据库服务器的子域),那么您将必须立即更新所有客户端,并且您可能需要发送他们推送通知,告知他们您的应用程序将停止工作,除非他们升级。
关于ios - 使用 iOS 向服务器发送数据/从服务器接收数据的首选方法/格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335454/