PHP:如何使用SOAP访问不同服务器上存在的类方法

时间:2018-06-18 12:29:25

标签: php html web soap

我正在尝试访问当前服务器上不同服务器上存在的类的方法,以便我可以共享他们的方法,这样就不必再次编写相同的方法

所以我在我的系统上配置并安装了PHP SOAP扩展..

之后我在服务器端创建了一个SOAPService.php文件,其中包含以下代码。



 
<?php
// *** The SOAP class wrapper: myClassSoapServer.php ***

require_once('bc_seller_classes/Vendor/Vendor.php');

$options = array('uri' => 'http://merchants.bookchor.local/bc_seller_classes/Vendor/');
$SOAPServer = new SoapServer(null, $options);
$SOAPServer->setClass('Vendor');
$SOAPServer->handle();
?>
&#13;
&#13;
&#13;

在这里,您可以看到我想访问Vendor类。

在客户端,我使用以下代码创建soap.php,以便我可以访问Vendor类的get_module()方法。

&#13;
&#13;
<html>
<head></head>
<body>
  <?php

  // *** The SOAP way: using a class remotely ***

  $options = array(
    'location' => 'http://merchants.bookchor.local/VendorSoapService.php',
    'uri'      => 'http://merchants.bookchor.local/'
  );
  $hdl = new SoapClient(null, $options);
var_dump($hdl);
  $data = $hdl->get_module();
  echo "hi";
  var_dump($data);
  ?>
</body>
</html> 
&#13;
&#13;
&#13;

但是当我在客户端执行soap.php时,它会出现以下错误

Uncaught SoapFault exception: [Client] looks like we got no XML document

所以我哪里出错了。

PS:get_module()函数返回一个我想在这里使用的数组。 SOAPService.phpsoap.php都放在项目的根文件夹中。

0 个答案:

没有答案