将数据从 iPhone 应用程序发送到 Node.js Web 服务器

Posted

技术标签:

【中文标题】将数据从 iPhone 应用程序发送到 Node.js Web 服务器【英文标题】:Sending data from an iPhone app to a Node.js web server 【发布时间】:2012-04-16 16:02:46 【问题描述】:

我使用this code 制作了一个 sinatra 网络服务器,并使用 express 制作了我自己的 Node.js 版本。然后我让this code 在 iPhone 上工作以从服务器获取数据。 iphone 应用程序发送一个对“/sushi.json”的 HTTP 请求,服务器用app.get('/sushi.json', function(request, response)) 处理这个请求。然后服务器将 JSON 字符串发送回 ios 应用程序,然后将其解析为一个数组,以便它可以使用它。

但是如果我想发送数据服务器呢?在 iPhone 应用程序中,我将如何构建和发送 JSON 字符串,服务器将如何监视它?

另外,我不需要使用 socket.io 来让它工作。这是应该在这里使用的东西吗?

【问题讨论】:

【参考方案1】:

不,如果你想在你的服务器和客户端之间保持一个持久的流,socket.io 是。其主要用途是当您需要您的服务器能够将数据推送到客户端而不是客户端请求它时。

要发布一些 JSON,您将使用与以前相同的代码,但创建请求对象略有不同:

__autoreleasing NSError* error = nil;
id result = [NSJSONSerialization JSONObjectWithData:data 
                                            options:kNilOptions error:&error];

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
                                                       result, @"my_json", nil];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" 
                                            path:@"/myobject" parameters:params];

您将通过以下方式在服务器上获取您的数据

JSON.parse(request.params['my_json'])

【讨论】:

NSMutableURLRequest中没有参数:方法 我稍后会用更完整的解释更新答案,但 httpClient 是您正在使用的 AFNetworking 库中的一个类的实例。查看链接并检查文档,您可能会弄清楚。谷歌搜索“afnetworking 将数据发送到服务器”也应该有所帮助。 @JakubHampl 您是否需要任何外部库才能运行您的代码? (例如AFNetworking)?谢谢。 @JakubHampl 编辑:我已将 AFNetworking 添加到我的项目中,但您能否解释一下 httpClient 是什么以及它来自哪个类?谢谢。

以上是关于将数据从 iPhone 应用程序发送到 Node.js Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

在后台将数据从 iWatch 发送到 iPhone

将数据从 Apple Watch 发送到 iPhone

无法使用 iphone 中的默认 Twitter 将数据从应用程序发送到 twiiter

当 iPhone 不在附近时,使用 Swift 将数据从 Apple Watch 发送到 iPhone

使用应用程序上下文将数据从 iPhone 发送到 WatchOS 时遇到问题

使用套接字将数据从 node.js 发送到 Java