HTTP_RAW_POST_DATA 你的PHP是什么版本的先。

解决方案 »

  1.   

    <?php 
    require_once("nusoap/lib/nusoap.php"); //定义服务程序 
    function hello($str) { 
        return "Hello World!...........".$str; 
    } //初始化服务对象 , 这个对象是类 soap_server 的一个实例 
    $soap = new soap_server();
    //$soap->configureWSDL("buddy_wsdl", "");
    //输出WSDL schema types in the namespace with the tns prefix
    //$soap->wsdl->schemaTargetNamespace="urn:buddy_wsdl";$soap->soap_defencoding='utf-8';
    $soap->decode_utf8 = false;
    $soap->xml_encoding='utf-8';
    //调用服务对象的 register 方法注册需要被客户端访问的程序。
    //只有注册过的程序,才能被远程客户端访问到。
    $soap->configureWSDL('hello'); // 初始化对 WSDL 的支持// 注册服务
    $soap->register('hello',array("str"=>"xsd:string"), array("return"=>"xsd:string"));
    //最后一步,把客户端通过 post 方式提交的数据,传递给服务对象的 service 方法。 
    //service 方法处理输入的数据,调用相应的函数或方法,并且生成正确的反馈,传回给客户端。
    $HTTP_RAW_POST_DATA=isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:"";
    $soap->service($HTTP_RAW_POST_DATA);
    ?>这个实现了webservices,但是用vs.net调用,提示方法未注册,用php调用没问题
    还有如何webservices方法返回一个类类型,而不是基本类型array("return"=>"xsd
    这里怎么改?