私は問題の解決策を求めて、stackoverflow と Google を検索しています。
Zend Framework を使用して 2 つのプロジェクトを作成しましProject1
たProject2
が、そのうちの 1 つに 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 ファイルも開いてみましたが、空の文字列が得られました...
私は何が欠けていますか??? 朝から検索してイライラしましたが、解決策がありませんでした。
返信ありがとうございます。