0

XML ドキュメントの代わりに JSON オブジェクトを応答として送信するように PHP SoapServer に強制するにはどうすればよいですか?

ありがとう。

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

...したがって、技術的にはこれは可能ですが、これを理解しているクライアントは1人もいないと思います。

于 2012-12-15T01:03:32.327 に答える
0

http://www.sinatrarb.comを見てください。jsonオブジェクトを返すためのRESTfulWebサービスを作成するのは非常に簡単です。

要件によって異なります-SOAPはxmlリクエストであり、リターンの形式もSOAP(XML)である必要があるという意味ではなく、JSON文字列を簡単にポストバックできます。

たぶん、あなたがより多くの情報を提供することができれば、私たちはより多くを助けることができますか?

于 2012-12-15T01:06:06.203 に答える