引入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;  
}
?>

 

 posted on 2017-05-11 11:24  の西瓜  阅读(255)  评论(0编辑  收藏  举报