1

我正在编写 REST api,并希望以 JSON 格式返回响应。因此,我阅读了有关“ContextSwitch”的信息。但我无法将标头更改为“应用程序/json”并将数据转换为 json。

这是我的控制器的代码:

 public function preDispatch()
{

    $this->getRequest()->setParam('format', 'json');
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
}


public function _init()
{

    $contextSwitch = $this->_helper->getHelper('contextSwitch');
    $contextSwitch ->addActionContext('post', 'json')
                    ->initContext('json');
}

public function postAction()
{
    echo 'test';

}

当我使用 Curl 命令行工具检查响应时,我收到:

< Content-Length: 4
< Content-Type: text/html
< 
* Connection #0 to host localhost left intact
test* Closing connection #0

为什么标题和数据没有改变?我该如何解决?

4

2 回答 2

1

看起来该_init()方法根本没有执行。尝试将其重命名为init().

于 2013-07-31T13:00:54.297 回答
0

因为我认为您的代码缺少一些调用上下文切换助手的步骤

这是我为rest api使用上下文切换的工作示例

只需抛出这个 API 示例并让你的脚本工作

希望这对你有帮助。

于 2013-07-31T09:23:57.243 回答