nusoap在thinkphp下创建webservice

来源:互联网 发布:c 和java那个早 编辑:程序博客网 时间:2024/06/06 00:24

注:此代码为非原创,根据原代码做了Thinkphp下实现

根据nusoap在thinkphp下创建webservice

和在原生PHP下创建方法无差别,仅需将接口具体实现代码放在thinkphp控制器外即可。其余代码放在控制器内外均可。此例中放在控制器外,控制器为空

如需将接口实现代码放在class内,需新建一个class,注册接口时使用 class名.函数名 ,如API.test(API为class名,test为API内function)

nusoap下载地址:nusoap下载地址

<?phpclass TestAction extends BaseAction{    }    require_once ('lib/nusoap.php');    // 返回的是一个数组    function adduser ($userName, $userAge, $birthday, $higher) {    $temp ['userName'] = $userName;    $temp ['userAge'] = $userAge;    $temp ['birthday'] = $birthday;    $temp ['higher'] = $higher;    return $temp;    }    function validate($userName){        if ($userName == "helloworld") {            return  1;        }        else{            return  0;        }    }    $soap = new soap_server ();    // 避免乱码    $soap->soap_defencoding = 'UTF-8';    $soap->decode_utf8 = false;    $soap->xml_encoding = 'UTF-8';    $soap->configureWSDL ( 'Demowsdl', 'urn:Demowsdl' );    $soap->wsdl->schemaTargetNamespace = 'urn:Demowsdl';    // 下面是设置一个返回的数组类型    // 参数一,为你自己命名的数据类型    // 参数二,混合类型,不用管    // 参数三,为结构体,或者数组(array)    // 参数四,按照什么排序,有三个选择all(全部)|sequence(次序)|choice(选择)    // 参数五,基本约束    // 注意:上面5个我们不用改变    // 参数6,最重要的参数,也就是我们返回的类型想对应    // 返回数组下标 =>array('name'=>"数组下标",'type'=>"xsd:对应的类型")    // 类型基本包括 string,int, date,boolean 这几种形式    $soap->wsdl->addComplexType ( 'userInfo', 'complexType', 'struct', 'all', '', array (            'userName' => array (            'name' => 'userName',            'type' => 'xsd:string'        ),            'userAge' => array (            'name' => 'userAge',            'type' => 'xsd:int'        )    ,            'birthday' => array (            'name' => 'birthday',            'type' => 'xsd:date'    )    ,            'higher' => array (            'name' => 'higher',            'type' => 'xsd:boolean'        )    ) );    // 这里是注册函数    // 参数一,函数名    // 参数二,是这个函数接受的参数,注意指定类型    // 参数三,为返回的值,不一定名字非叫return,叫其他的也可以,注意返回的类型,    // 我这里是返回我自己定义的类型 tns:userInfo 如果为基本的类型为 xsd:string 这个样子    // 其他的参数,只要统一就可以了,尤其是名字空间跟 soapaction    $soap->register ('adduser',     array (       'userName' => 'xsd:string',       'userAge' => 'xsd:int',       'birthday' => 'xsd:date',       'higher' => 'xsd:boolean'     ),     array (       'return' => 'tns:userInfo'     ),     'urn:Demowsdl',     'urn:Demowsdl#adduser',     'rpc',     'encoded',     '添加用户' );    $soap->register ( 'validate',     array (       'userName' => 'xsd:string'     ),     array (       'return' => 'xsd:int'     ),     'urn:Demowsdl',     'urn:Demowsdl#validate',     'rpc',     'encoded',     '验证用户名' );    @$soap->service ( $HTTP_RAW_POST_DATA );?>


0 0
原创粉丝点击