Search code examples
phpweb-servicesnav

Connecting Nav Web Service in php


I am trying to connect the Nav Web Services in Php (followed by this Blog).

but it's returning an error:

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://NavIP.com:7047/DynamicsNAV/WS/SystemService' : Start tag expected, '<' not found.

Could you tell me where I went wrong?

thanks in advance..

my code is:

//client.php

     <?php
require_once("NTLMStream.php");
require_once("NTLMSoapClient.php");
try
{
// we unregister the current HTTP wrapper 
stream_wrapper_unregister('http'); 
// we register the new HTTP wrapper 
stream_wrapper_register('http', 'NTLMStream') or die("Failed to register protocol");
// Initialize Soap Client 
$baseURL = 'http://NavIp.Com:7047/DynamicsNAVPMS/WS/';
$client = new NTLMSoapClient($baseURL.'SystemService'); 
// Find the first Company in the Companies 
$result = $client->Companies(); 
$companies = $result->return_value; 
echo "Companies:<br>"; 
if (is_array($companies)) { 
  foreach($companies as $company) { 
    echo "$company<br>"; 
  } 
  $cur = $companies[0]; 
} 
else { 
  echo "$companies<br>"; 
  $cur = $companies; 
} 

}
catch(Exception $ex)
{
    echo $ex->getMessage();
}
?>

Solution

  • I am dealing with the exact same problem, but have not found a solution because they all come back to this same script. Your problem is that you are getting no result back because of a 401 error code (could not authenticate), which is exactly I where I am stuck as well. The script ends up using CURL to connect, but somehow that fails.