2012-10-23 39 views
5

Tôi mới sử dụng Dịch vụ web và đang cố gắng truy cập/đọc dữ liệu XML bằng PHP (trang web của tôi sẽ sử dụng dữ liệu bằng PHP).Đọc dịch vụ web bằng cách sử dụng PHP với GUID và không gian tên

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

tôi cần để có được quyền truy cập và đọc các thông tin chứng khoán xe nhưng không thể nhìn thấy để truy cập bất cứ điều gì. Xe Array được lưu trữ theo: http://services.mywheels.co.za/BWAVehicleStockService.svc?xsd=xsd2.

tôi đang sử dụng mã này nhưng không cung cấp bất kỳ dữ liệu nào của tôi. Tôi cũng có một GUID mà tôi cần phải vượt qua nhưng không có ý tưởng làm thế nào để thêm nó vào tiêu đề.

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

      ?> 

nếu ai đó có thể giúp hoặc hướng tôi đi đúng hướng với điều này sẽ tuyệt vời.

Cảm ơn

Trả lời

1

Bạn có thể thêm tiêu đề sử dụng __setSoapHeaders():

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

tôi phải đọc WSDL bản thân để tìm ra những không gian tên tôi nên sử dụng; trong trường hợp này, họ tham chiếu đến Guidtns:Guid và từ trên cùng, bạn có thể đọc URI nào được sử dụng để biểu thị rằng, do đó http://tempuri.org.

Các vấn đề liên quan