PHP: SOAP Webservice с ответом JSON

1

Я разрабатываю webservice в PHP используя SOAP и мне нужно вернуть ответ в формате JSON. Метод Webservice прост. Он принимает array как входной сигнал и должен возвращать объект JSON. Регистрация метода в 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;

Но когда я запускаю client script, он ничего не дает (пустой объект json):

Когда я изменяю возвращаемый тип метода на string в $server->register и я возвращаю фактическую строку в методе, он отлично работает, но не в случае объекта JSON. Любая помощь?

Теги:
soap
web-services

1 ответ

0

Я предполагаю, что, поскольку вы сделали json_encode на стороне сервера, вы должны сделать json_decode на стороне клиента.

Измените код на последней строке:

 echo $json;

в

 echo json_decode($json);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню