Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用iOS向服务器发送数据或从服务器接收数据的首选方法/格式?_Ios_Http - Fatal编程技术网

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

使用iOS向服务器发送数据或从服务器接收数据的首选方法/格式?,ios,http,Ios,Http,当我开始构建我的第一个iPhone应用程序的框架时,我想了解更多关于与HTTP服务器交互的标准或首选方法的信息。我假设大多数iPhone应用程序都会启动HTTP连接来发送和接收数据。执行此任务的首选数据格式和方法是什么 次要问题:是否有其他向服务器发送/接收数据的方式?我应该避免使用PHPWeb服务器作为与几个数据库交互的中间人吗 当前流程: 出站:iOS->Http请求->PHP->MySQL数据库 入站:MySQL->PHP->JSON数据->iOS没有首选格式。就我个人而言,我喜欢使用JS

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

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

当前流程:

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


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

没有首选格式。就我个人而言,我喜欢使用JSON,但有些人因为速度太快而对plists发誓。如果您对XML比较熟悉,也可以使用它。我发现在iOS上使用JSON REST API非常愉快,可以使用和。这很容易开始,而且灵活性允许一些非常酷的东西

您肯定应该使用PHP服务器作为“中间人”,因为您希望在接收数据时在服务器端验证数据。将数据库直接暴露在攻击之下,使用PHP可以避免很多麻烦和问题。当然,您可以使用其他框架和语言,如Ruby RoR、Sinatra等、Python Django等


在我看来,您当前的流程很好,这正是Web上许多服务用来解决这个问题的方法。

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

还有其他与服务器通信的方法。您可以编写自己的协议,该协议只有在最大程度上安全性的情况下才能被客户端理解,但可能很难维护,或者可能会发现错误。您可以使用其他人的框架,比如JSON

有关JSON的更多详细信息,请参阅此链接

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

至于你的数据库问题

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

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

如果您决定选择新的DB服务器,或者如果您的托管公司决定为您的DB服务器提供新的IP或子域,则您必须立即更新所有客户端,并且您可能需要向它们发送推送通知,通知它们您的应用程序将停止工作,除非它们升级。
如果您使用的是JSON,那么您应该检查并明确使用HTTPS处理所有web流量。您可以使用自签名证书和ASIHTTPRequest来实现这一点。如果您有选择web服务器的选项,请尝试Nginx。我已经使用Apache 7年了,因为移动设备上的速度非常快,所以我选择了Nginx。