2012-10-23 23 views
5

我是Web服務新手,並且正在努力使用PHP(我的網站將使用PHP中的數據)訪問/讀取XML數據。使用帶有GUID和名稱空間的PHP讀取Web服務

的WSDL URL:http://services.mywheels.co.za/BWAVehicleStockService.svc?wsdl

我需要訪問和讀取的車輛股票信息,但不能看到任何訪問。陣列車輛存儲在: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; 

      ?> 

如果有人能夠幫助或指引我在正確的方向,這將是偉大的。使用__setSoapHeaders()

感謝

回答

1

您可以添加標題:

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

我不得不讀的WSDL本身,找出我應該用什麼樣的命名空間;在這種情況下,他們將Guid稱爲tns:Guid,從頂部可以看出用什麼URI表示該內容,因此http://tempuri.org

相關問題