Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading Web Service using PHP with GUID and Namespace

I am new to Web Services and am struggling to access/read the XML data using PHP (my website that will be using the data is in PHP).

The WSDL Url: http://services.mywheels.co.za/BWAVehicleStockService.svc?wsdl

I need to get access and read the Vehicle stock information but cant see to access anything. the Array vehicle are stored under: http://services.mywheels.co.za/BWAVehicleStockService.svc?xsd=xsd2 .

i am using this code but it doesnt give my any data. I also have a GUID that i need to pass but have no idea how to add it to the header.

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

            ?>

if someone can help or point me in the right direction with this that would be great.

Thanks

like image 333
De Schwab Avatar asked Nov 13 '22 19:11

De Schwab


1 Answers

You can add headers using __setSoapHeaders():

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

I had to read the WSDL itself to find out what namespace I should use; in this case they refer to Guid as tns:Guid and from the top you can read what URI is used to express that, hence http://tempuri.org.

like image 57
Ja͢ck Avatar answered Nov 15 '22 08:11

Ja͢ck