我一直在 stackoverflow 和 Google 上寻找解决问题的方法。
我已经使用 Zend Framework 创建了两个项目 -Project1
并且Project2
- 我想在其中一个上实现 Web 服务。这个想法是使用 POST 发送一个 JSON 字符串Project1
并接收一个 JSON,其中包含与该变量相关的所有详细信息。现在我在以下位置创建了一个 TestController Project2
:
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();
}
上面的代码有效。dataAction
它从控制器中读取Project1
并给我一个回显的输出。但是当我尝试这个时:
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 文件但得到一个空字符串...
我错过了什么???从早上开始,我一直在寻找它,但没有找到解决方案。
提前感谢您的回复。