0

如何强制我的 PHP SoapServer 发送 JSON 对象作为响应而不是 XML 文档?

谢谢。

4

2 回答 2

2

那不是SOAP,所以不是。它可以在某个 xml 节点中合并一个 jsonstring,仅此而已。您可能只需要一个REST服务于json.

不过,您可以将其混为一谈,根据定义使其不是 SOAP,而是一些奇怪的混合体:

<?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>');
?>

...所以,从技术上讲,这是可能的,但我怀疑没有一个客户能理解这一点。

于 2012-12-15T01:03:32.327 回答
0

看看http://www.sinatrarb.com它很容易创建一个安静的 Web 服务来返回一个 json 对象。

取决于您的要求 - SOAP 是一个 xml 请求,这并不意味着返回的格式也需要是 SOAP (XML),您可以轻松地回发 JSON 字符串。

也许如果您能提供更多信息,我们可以提供更多帮助?

于 2012-12-15T01:06:06.203 回答