我正在使用Php默认的SoapClient进行通信。我必须发送看起来像这样的数据。
<payloadPublication d2p1:type="GenericPublication" >
...
</payloadPublication>
唯一的问题是如何在以下代码中添加complexType“GenericPublication”,其他一切正常。
$payloadPublication = array('payloadPublication'=> "subtags/data");
答案 0 :(得分:0)
我只是根据您提供的示例猜测(有关该服务的更多信息会有所帮助),但基本上您只需执行以下操作:
class MYGenericPublication {
public $subtags;
public $name;
}
$new_pub = new MYGenericPublication;
$new_pub->subtags = array('tagA', 'tagB');
$new_pub->name = 'HiThere';
$client = new SoapClient('foo?wsdl', classmap=array('GenericPublication' => 'MYGenericPublication'));
$client->doSomethingWithPublication(array('payloadPublication' => $new_pub));
$my_pub = $client->findPublication(array('name' => 'HiThere'));
echo $my_pub->subtags[0]; // tagA
echo $my_pub->name; // HiThere
echo get_class($my_pub); // MYGenericPublication
请在此处查看我的回答:Passing user-defined types in PHP SOAP了解更多详情
答案 1 :(得分:0)
您可以尝试其他答案,但我通过直接发送XML解决了我的问题,这对我有用。
$ myxml =“您要在肥皂请求正文中发送 的所有xml ”;
$ xmlvar = new SoapVar($ myxml,XSD_ANYXML);
$ params-&gt; xmlDocument =(object)$ xmlvar;
$ save_result = $ client-&gt; yourFunctionName($ xmlvar);