创建SOAP客户端

时间:2013-01-31 08:47:29

标签: php soap soap-client

如何将数据发送到WSDL?下面是我的XML示例:

<UzbRequest xmlns="XXXXXXXX">
<Authorisatie>
    <Afzender>YYYYYYYY</Afzender>
    <Sleutel>XXXXXXXXXXXXXX</Sleutel>
</Authorisatie>
<Aanlevering ID="IDENTYFIKATOR">
    <Mutaties>
        <Mutatie ID="IDENTYFIAKTOR1" BSN="ZZZZZ" Collectiviteit="WWWWW">
            <Aanmelding>
                <Ingangsdatum>RRRRR</Ingangsdatum>
                <Geboortedatum>TTTTT</Geboortedatum>
                <Geslacht>M</Geslacht>
                <NAW>
                    <Naam>
                        <Voorletters>CP</Voorletters>
                        <EigenNaam>
                            <Achternaam>NOWAK</Achternaam>
                        </EigenNaam>
                    </Naam>
                    <DomicilieAdres>
                        <Straat>BLOTNA</Straat>
                        <Huisnummer>5</Huisnummer>
                        <Postcode>47-120</Postcode>
                        <Plaats>WARSZAWA</Plaats>
                        <Landcode>PL</Landcode>
                    </DomicilieAdres>
                </NAW>
                <Nationaliteit>
                    <Landcode>DE</Landcode>
                </Nationaliteit>
                <E106>Nee</E106>
            </Aanmelding>
        </Mutatie>
    </Mutaties>
</Aanlevering>
</UzbRequest>

我应该如何将这些内容发送到服务器?

发送数据需要了解更多信息吗?我目前正在尝试使用nusoap。 我试图将这些数据作为XML发送数组,但没有任何作用。 PHP中的函数getFucntions返回:

array(1) { [0]=> string(39) "UzbResponse Uzb(UzbRequest $UzbRequest)" } 

我用__soapCall更改连接类型。 现在我有错误

"Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'Authorisatie' property" 我有

$param=array(
    'Authorisatie'=>
        array('Afzender'=>array("_"=>'test')
            ,'Sleutel'=>array("_"=>'test12344')
            ));
var_dump($client->__soapCall("Uzb", $param));

1 个答案:

答案 0 :(得分:2)

你可以使用php的SoapClient - http://www.php.net/manual/en/soapclient.soapcall.php

您需要将参数作为数组传递,它将生成XML本身。查看示例如何完成。