Возврат объекта JSON из PHP SoapServer
Как я могу заставить мой PHP SoapServer отправлять объект JSON в качестве ответа вместо документа XML?
Благодарю.
2 ответа
Это не SOAP
так что нет. Он может включать jsonstring в некоторый xml-узел, вот и все. Вы можете хотеть просто REST
обслуживание сервера json
,
Вы можете убить его, сделав по определению НЕ МЫЛО, а какой-то странный гибрид:
<?php
class ThisIsNotASoapServer extends SoapServer {
}
function test(){
//should have a return
//return range(1,9);
//but totally breaks it by:
echo json_encode(range(1,9));
//the exit here is needed
exit;
}
$server = new ThisIsNotASoapServer(null, array('uri' => 'http://test-uri/','soap_version' => 1));
$server->addFunction("test");
$server->handle('<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:Test xmlns:m="Some-URI"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>');
?>
... так, технически это возможно, но я подозреваю, что нет ни одного клиента, который бы это понимал.
Взгляните на http://www.sinatrarb.com/ очень легко создать спокойный веб-сервис для возврата объекта json.
зависит от ваших требований - SOAP - это запрос xml, это не означает, что формат возвращаемого значения также должен быть SOAP (XML), который вы можете легко опубликовать в виде строки JSON.
Может быть, если вы можете предоставить больше информации, мы можем помочь больше?