没有从symfony中的android接收数据

时间:2013-10-24 10:01:37

标签: symfony

我有一个symfony项目,现在我正在尝试从Android设备接收数据并通过json编码访问该数据,但实际上没有收到数据。而是将layout.html.twig作为对Android应用程序的响应发回。

我使用以下代码在我的控制器中接收数据......

    $email = $_POST['email'];
    $response = new Response(json_encode(array('name' => $email)));
    $response->headers->set('Content-Type', 'application/json');

    echo $response;

但是浏览器在/home/external/public_html/src/Apostle/ApiBundle/Controller/DefaultController.php中显示未定义索引:电子邮件

我哪里错了?????

2 个答案:

答案 0 :(得分:1)

首先,关于电子邮件错误,发送到控制器的请求没有'email'post参数。

然后你必须在symfony控制器中返回响应,而不仅仅是回显它。

<强>更新

我认为您不应该直接在symfony中使用$ _POST,请使用$ this-&gt; getRequest() - &gt; get()方法,或$ this-&gt; getRequest-&gt; request-&gt;特定POST参数的get()方法。

答案 1 :(得分:1)

您的代码存在很多问题。

  • 您应阅读$_POST变量。始终使用$this->getRequest()->get('email')代替$_POST['email']
  • 通常认为实例化JsonResponse然后实例化Response并将其Content-type设置为application/json会更好。
  • 您收到$_POST通知和$this->getRequest()->get()空指针的原因是您的客户端(您的Android设备)未发送电子邮件参数。
  • 您不应该echo Response,您应该将其退回。

我希望它有所帮助。