5

我是 Web 服务的新手,正在努力使用 PHP 访问/读取 XML 数据(我的网站将使用 PHP 中的数据)。

WSDL 网址:http ://services.mywheels.co.za/BWAVehicleStockService.svc?wsdl

我需要访问并阅读车辆库存信息,但无法访问任何内容。Array 车辆存储在:http ://services.mywheels.co.za/BWAVehicleStockService.svc?xsd=xsd2 下。

我正在使用此代码,但它没有给我任何数据。我还有一个需要传递的 GUID,但不知道如何将其添加到标题中。

            <?PHP
            define('NEWLINE', "<br />\n");

            // SOAP client

            $wsdl = 'http://services.mywheels.co.za/BWAVehicleStockService.svc?wsdl';
            $soapClient = new SoapClient($wsdl, array('cache_wsdl' => 0));

            // SOAP call


            $parameters->ArrayOfVehicle->Vehicle;

            try
            {
                $result = $soapClient->GetVehicleStock($parameters);
            }
            catch (SoapFault $fault)
            {
                echo "Fault code: {$fault->faultcode}" . NEWLINE;
                echo "Fault string: {$fault->faultstring}" . NEWLINE;
                if ($soapClient != null)
                {
                    $soapClient = null;
                }
                exit();
            }
            $soapClient = null;

            echo "<pre>\n";
            print_r($result);
            echo "</pre>\n";

            echo "Return value: {$result->GetDataResult}" . NEWLINE;

            ?>

如果有人可以帮助我或为我指明正确的方向,那就太好了。

谢谢

4

1 回答 1

1

您可以使用以下方式添加标题__setSoapHeaders()

$h = new SoapHeader('http://tempuri.org/', 'Guid', '123');
$soapClient->__setSoapHeaders($h);

我必须阅读 WSDL 本身才能找出我应该使用的命名空间;在这种情况下,它们引用Guidastns:Guid并且从顶部开始,您可以阅读使用什么 URI 来表达它,因此http://tempuri.org.

于 2012-10-24T06:01:57.663 回答