2015-11-20 112 views
1

我正在開發一個webservicePHP使用SOAP,我必須返回格式爲JSON的響應。 Webservice方法很簡單。它需要一個array作爲輸入,並應返回JSON對象。在webservice註冊的方法是這樣的:PHP:帶有JSON響應的SOAP Webservice

$server->register(
    'getProducts', 
    array('arr' => 'xsd:array'), 
    array('return' => 'xsd:json') 
); 

而且我這樣做的方法中:

$sql3 = "SELECT name, price from products WHERE status_id=$staus_id and cat_id=$cat_id"; 
$result3 = $conn->query($sql3); 
$row3 = mysqli_fetch_all($result3, MYSQLI_ASSOC); 
$json = json_encode($row3); 
return $json; 

而在client側,我這樣做是爲了捕捉對象和回聲它:

$response = $client->getProducts($param); 
echo $response; 

但是,當我運行clientscript,它什麼也沒給(空的json對象):

當我將方法的返回類型更改爲string,$server->register並且我在方法中返回一個實際的字符串時,它可以正常工作,但它不適用於JSON對象。任何幫助?

回答

0

我在這裏猜測,因爲你在服務器端做了一個json_encode,你必須在客戶端做一個json_decode。

echo $json; 

echo json_decode($json); 

從最後一行更改代碼