欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

soap DTD are notsupported by SOAP 有大用 有大大用 有大大大用

一般是因为 客户端  SoapClient 构造方法里含的参数 uri

与 SoapServer 构造方法里含的参数 uri 不一样,(或者是这两个类的 location 参数不对)才导致报 "DTD are not supported by SOAP" 错 

client.php

<?php
try{
   // non-wsdl方式调用web service
   // 创建 SoapClient 对象
   $soap = new SoapClient(null,array('location'=>"http://my.nusoap.com/soap/server1-ok.php",'uri'=>'server1.php' ) );
   // 调用函数,
   $result1 = $soap->getName();
   $result2 = $soap->__soapCall("getUrl",array());
   echo $result1."<br/>";
   echo $result2;
} catch(SoapFault $e){
   echo $e->getMessage();
}catch(Exception $e){
   echo $e->getMessage();
}
?>


server1-ok.php

<?php
// SiteInfo 类用于处理请求
Class SiteInfo
{
   /**
    *    返回网站名称
    *    @return string
    *
    */
   public function getName(){
       return "菜鸟教程";
   }

   public function getUrl(){
       return "www.runoob.com";
   }
}

// 创建 SoapServer 对象
$s = new SoapServer(null,array("location"=>"http://my.nusoap.com/soap/server1-ok.php","uri"=>"server1.php"));

// 导出 SiteInfo 类中的全部函数
$s->setClass("SiteInfo");
// 处理一个SOAP请求,调用必要的功能,并发送回一个响应。
$s->handle();
?>


普通分类: