【发布时间】:2012-09-24 19:23:37
【问题描述】:
我一直在 stackoverflow 和 Google 上搜索我的问题的解决方案。
我已经使用 Zend 框架创建了两个项目 - Project1 和 Project2 - 我想在其中一个上实现 Web 服务。这个想法是向Project1 发送一个 JSON 字符串,然后使用 POST 接收一个包含与该变量关联的所有详细信息的 JSON。现在我在Project2 上创建了一个TestController:
public function indexAction(){
$uri = 'http://project1.com/WebService/data';
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(CURLOPT_FOLLOWLOCATION => true),
);
$client = new Zend_Http_Client($uri, $config);
$request = $client->request('POST');
print_r($request->getBody());
exit();
}
上面的代码有效。它从Project1 控制器读取dataAction,并给我一个回显的输出。但是当我尝试这个时:
public function indexAction(){
$uri = 'http://project1.com/WebService/data';
$config = array(
'adapter' => 'Zend_Http_Client_Adapter_Curl',
'curloptions' => array(CURLOPT_FOLLOWLOCATION => true),
);
$client = new Zend_Http_Client($uri, $config);
$data = array(
'userID' => 'TEST TEST',
'value' => 1,
'description' => 'ABCDEFG',
);
$request = $client->request('POST');
$json = json_encode($data);
$client->setRawData($json, 'application/json')->request('POST');
exit();
}
当我尝试在dataAction 中显示时,在服务器端:
public function dataAction(){
var_dump($this->getRequest()->getParam('var-name'));
var_dump($_POST);
die();
}
我得到这样的输出:NULL array(0) { } ...。当我在客户端尝试它时,我得到相同的输出。还要提一下..我也尝试打开 php://input 文件但得到一个空字符串...
我错过了什么???从早上开始,我一直在寻找它,但没有找到解决方案。
提前感谢您的回复。
【问题讨论】:
标签: php web-services zend-framework zend-http-client