引入nusoap Service.php //运行该文件,在网页中wsdl点击,可浏览生成的wsdl代码;网页提供注册的方法 <?php require_once ("nusoap/nusoap.php"); $server = new nusoap_server(); // 避免乱码 $server->soap_defencoding = 'UTF-8'; $server->decode_utf8 = false; $server->xml_encoding = 'UTF-8'; $server->configureWSDL ('names'); // 打开 wsdl 支持,参数随意 /* 注册需要被客户端访问的程序 类型对应值: bool->"xsd:boolean" string->"xsd:string" int->"xsd:int" float->"xsd:float" */ $server->register ( 'name', // 方法名 array ("request" => "xsd:string" ), // 参数,默认为 "xsd:string" ,键值随意,多传入同意string array ("response" => "xsd:string" ) ); // 返回值,默认为 "xsd:string" ,键值随意 //isset 检测变量是否设置 $HTTP_RAW_POST_DATA = isset ( $HTTP_RAW_POST_DATA ) ? $HTTP_RAW_POST_DATA : ''; //service 处理客户端输入的数据 $server->service ( $HTTP_RAW_POST_DATA ); /** * 供调用的方法 * @param $name */ function name($name,$age) { return $name+$age; } ?> Clint.php <?php require_once ("nusoap/nusoap.php"); /*通过 WSDL 调用 WebService 参数 1 WSDL 文件的地址 (问号后的wsdl不能为大写) 参数 2 指定是否使用 WSDL */ //$client = new soapclient('http://localhost/nusoapService.php?wsdl',true); $client = new nusoap_client('http://localhost/test/web_service/Service.php'); $client->soap_defencoding = 'UTF-8'; $client->decode_utf8 = false; $client->xml_encoding = 'UTF-8'; //参数转为数组形式传递 $paras = array ('10','21'); //或$paras = array ('name'=>'张三','age'=>'21'); 键值随意 输出21 //目标方法没有参数时,可省略后面的参数 $result = $client->call ('name',$paras); //检查错误,获取返回值 if (! $err = $client->getError ()) { echo " 返回结果: ", $result; //31 } else { echo " 调用出错: ", $err; } ?>