0

I am trying to create a website that retrieves data from a Web Service using the site API.

The 'nuSOAP' PHP library seems to be a perfect way to go about this and so I have been trying to run through a basic tutorial by Scott Nichol called 'Introduction to NuSOAP'.

Here is the code for server.php:

<?php

// Pull in the NuSOAP code
require_once('nusoap.php');

// Create the server instance
$server = new soap_server;

// Register the method to expose
$server->register('hello');

// Define the method as a PHP function
function hello($name) {
return 'Hello, ' . $name;
}

// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);

?>

...and here is the code for the client.php:

<?php

// Pull in the NuSOAP code
require_once('nusoap.php');

// Create the client instance
$client = new soapclient('http://localhost/beehive/server.php');

// Call the SOAP method
$result = $client->call('hello', array('name' => 'John'));

// Display the result
print_r($result);

?>

I have 'XAMMP' installed and so when I call up client.php via the browser it should bring up a basic page that says 'Hello, John' but instead I get the following error message:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from '.../server.php' : Start tag expected, '<' not found in C:\xampp\htdocs\beehive\client.php:7 Stack trace: #0 C:\xampp\htdocs\beehive\client.php(7): SoapClient->SoapClient('http://...') #1 >{main} thrown in C:\xampp\htdocs\beehive\client.php on line 7

I figured I should be loading the client page rather than the server, but if I load server.php then I get the error message 'This service does not provide a Web description'.

I have followed the tutorial exactly and can't figure out why it's throwing this error; can anyone please help?

Thank you!

John Dawson
  • 443
  • 3
  • 10
  • 28

2 Answers2

1

The error you receive makes perfect sense with your error description. The server isn't responding with the right format and therefor your client breaks.

The same error is discussed here: nusoap simple server

Community
  • 1
  • 1
Cas Wolters
  • 371
  • 3
  • 11
0

You need to point the client constructor to your wsdl file...

$client = new soapclient('http://localhost/beehive/server.php');
Milap
  • 6,915
  • 8
  • 26
  • 46