2015-11-20 83 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); 

从最后一行更改代码