如何将iOS App连接到Symfony2 RESTful Webservice?

时间:2013-11-29 20:24:49

标签: ios json rest symfony fosrestbundle

我有一个可以连接到RESTful PHP Web服务的iOS应用程序。 webservice最初是用本机PHP构建的,现在我将它迁移到Symfony2 Web服务。在iOS方面,我发送请求为JSON,服务器处理数据并返回JSON响应数据,一切运行良好。

现在,我的symfony2 webservice能够使用httpie(用于测试)对从浏览器窗口或终端发出的请求做出正确响应,并且如果我在参数中指定了.json,它将在browswer窗口中返回json数据。但是,我不知道如何让iOS应用程序发送请求而不是浏览器。如果该信息具有任何重要性,我正在使用FOSRestBundle。以下是终端的一个例子:

http http://serveripaddress/web/app_dev.php/users/1.json Accept:application/json

它按预期返回id = 1的用户的json数据表示:

HTTP/1.1 200 OK
Allow: GET, PUT, DELETE
Cache-Control: no-cache
Content-Type: application/json
Date: Fri, 29 Nov 2013 20:15:43 GMT
Server: Apache/2.2.22 (Ubuntu)
Set-Cookie: PHPSESSID=n8o72oq61isruuov1bqgc9udf5; path=/
Transfer-Encoding: chunked
X-Debug-Token: 6c3818
X-Powered-By: PHP/5.3.10-1ubuntu3.8

{
     "id": 1, 
        "last_name": "Robinson", 
        "first_name": "Jack", 
         ....More data truncated ...
}

在我的浏览器中,我可以使用地址栏中的http://serveripaddress/web/app_dev.php/users/1.json获得相同的结果。如何让iOS应用发送相同的请求?我想我需要的唯一变化是在symfony2代码中接受请求?请举一个简短的例子,我可以从示例中找出其余部分。

更详细地编辑:

为了澄清,我需要的是如何启动与服务器端REST Symfony2应用程序的连接。再次,这是我以前在使用本机PHP时所做的,但如何连接到Symfony2路由?在使用本机版本时,我所做的是构造一个dictionaryWithObjectandKeys传递命令的键值对(在PHP端)并将参数作为JSON并让服务器端返回JSON数据响应和成功或失败,简单明了。如果我使用Symfony2,我怎么能这样做,我猜这些命令现在变成了一条路线?我正在使用AFNetworking,除了我连接到Symfony2的部分之外,iOS客户端上的所有内容都不需要更改。请举个例子给我一个具体的图片。

2 个答案:

答案 0 :(得分:0)

例如,您可以使用AFNetworking 2。它是一个完整的框架,允许您使用Web服务(以及更多)。

顺便说一下,你可以简单地使用(和激活)NSURLRequest,但如果你的应用程序与webService交互很多,我建议使用AFNetworking。 (相信我,如果你想在iOS上制作应用,你真的想知道如何使用)

答案 1 :(得分:0)

我认为绑定到会话和cookie可能会违反REST性质。我强烈建议你使用像WSSE这样的东西。您可以将EscapeWSSEAuthenticationBundle用于WSSE。或者创建自己的。 潜深的有用链接:

How to create a custom Authentication Provider

Configure WSSE on Symfony2 with FOSRestBundle