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

时间:2012-04-03 01:02:00

标签: objective-c ios json node.js socket.io

我用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 个答案:

答案 0 :(得分:2)

不,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'])