Php 在类定义中定义NuSOAP服务器
很简单。由于项目的需要,我必须在类定义中创建一个NuSOAP服务器。我不能让它工作。我收到了一条错误消息:“msg解析中的错误:xml为空,未解析!”我需要做什么才能使其正常工作 这是两种方法的共同代码:Php 在类定义中定义NuSOAP服务器,php,nusoap,Php,Nusoap,很简单。由于项目的需要,我必须在类定义中创建一个NuSOAP服务器。我不能让它工作。我收到了一条错误消息:“msg解析中的错误:xml为空,未解析!”我需要做什么才能使其正常工作 这是两种方法的共同代码: require_once('/xxx/nusoap/nusoap.php'); function SomeMethod( $someParameter ) { return "Success: $someParameter!"; } function registerSom
require_once('/xxx/nusoap/nusoap.php');
function SomeMethod(
$someParameter
) {
return "Success: $someParameter!";
}
function registerSomeMethod() {
$in = array();
$in['someParameter'] = 'xsd:string';
$out = array();
$out['return'] = 'xsd:string';
$this->_server->register("SomeMethod",$in,$out,$this->_namespace,"SomeMethod","rpc","encoded");
}
在全局级别添加此代码将生成一个正常运行的Web服务:
$namespace = 'uri:mycompany';
$server = new soap_server;
$server->configureWSDL('mycompany',$namespace);
registerSomeMethod();
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
将该代码包装到类定义中(如下所示)将生成一个Web服务,该服务将直接将WSDL返回到浏览器,但会使用SoapFault“消息解析中的错误:xml为空,未解析!”
解决方案:将“全局$HTTP\u原始\u POST\u数据;”放入构造()中。我是PHP新手,完全忽略了这个细节 我修复了此更改:
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
为此:
$this->nusoap_server->service(file_get_contents("php://input"));
关于示例代码$服务器->服务(文件获取内容)php://input"));
$this->nusoap_server->service(file_get_contents("php://input"));