【问题标题】:How to POST JSON in body for functional tests in Symfony 1.4如何在 Symfony 1.4 中在正文中发布 JSON 以进行功能测试
【发布时间】:2012-09-27 22:38:07
【问题描述】:

我正在为 POST API 端点编写一些功能测试。我已经查看了文档,但找不到将内容添加到 POST 正文的方法。 sfBrowser的post方法:

post('some url',array('x'=>'y'))

仅创建 POST 参数(在本例中为 x=y)。是否可以使用 sfBrowser 向帖子正文添加内容?

【问题讨论】:

    标签: symfony1 symfony-1.4 functional-testing


    【解决方案1】:

    根据我发现的hereherehere,POST 格式采用参数:值格式,因此您可以使用以下代码发送 JSON:

    post('some url', array('json_data' => json_encode($toJson))
    

    然后在你的动作中解码

    $jsonObj = json_decode($request->getParameter('json_data'));
    

    但您需要将 JSON 数据与 POST 中的参数名称相关联,以便在服务器端检索它。

    附带说明一下,在查看 Symfony 代码后,参数直接提供给 $_POST,但 CSRF 除外,它经过了调整。

    【讨论】:

    • 我对以 POST 参数格式传递的值进行解码没有问题。问题是将数据添加到 POST 的正文中。我正在使用 Zapier,他们将数据作为 POST 正文而不是作为 POST 参数发送。这里的关键是通过 sfBrowser POST 方法发送 POST 正文。在查看了底层代码之后,我认为如果不更改 sfBrowser 代码就完全不可能了,目前这有点超出我的能力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多