[英]NuSOAP PHP Web Service
我正在使用NuSOAP尝试使用Java构建的Web服务。 到目前为止我有这个代码:
<?php
require_once('lib/nusoap.php');
$wsdl="http://localhost:8080/HelloWorldWS/sayHiService?WSDL";
$client=new nusoap_client($wsdl, 'wsdl');
$param='John';#array('name'=>'John');
echo $client->call('Hey', $param);
unset($client);
?>
但是当网页加载时,我得到一个空白页面甚至没有代码,我真的不知道为什么。 难道我做错了什么?
虽然NuSOAP是一个非常常见的PHP SOAP库,但我认为它主要用于PHP4应用程序。 因为PHP5有一个更快的内置SOAP扩展(因为它是一个编译的扩展)。 我还建议使用Zend Framework SOAP库。 但我记得我想使用一些Web服务(不是由我编写,用Java实现),而且这些SOAP客户端都不起作用,但是NuSOAP。 而我真的无法弄清楚为什么。
无论如何,这是我当时使用该Web服务所做的事情:
$soapClient = new nusoap_client($wsdlFile, 'wsdl', '', '', '', '');
$soapClient->soap_defencoding = 'UTF-8';
$soapClient->debug_flag = false;
$soapError = $soapClient->getError();
if (! empty($soapError)) {
$errorMessage = 'Nusoap object creation failed: ' . $soapError;
throw new Exception($errorMessage);
}
// calling verifyT method, using 2 parameters.
$tResult = $soapClient->call( 'verifyT', array($param1, $param2) );
$soapError = $soapClient->getError();
if (! empty($soapError)) {
$errorMessage = 'SOAP method invocation (verifyT) failed: ' . $soapError;
throw new Exception($errorMessage);
}
if ($soapClient->fault) {
$fault = "{$soapClient->faultcode}: {$soapClient->faultdetail} ";
// handle fault situation
}
不要使用NuSoap。 从版本5开始,PHP有一个本机soap客户端
在PHP5上继续使用NuSOAP有一些很好的理由:
不要使用NuSoap。 从版本5开始,PHP有一个本机soap客户端 ,除了速度更快之外,它更加稳定。
..当网页加载时,我得到一个空白页面没有...
这可能是一个致命的错误。 尝试检查错误日志以查看出错的地方。 或者设置display_errors = on
是的,你做错了什么。 很难知道什么是基于空白页面,但我从这一行开始,它看起来不像有效的PHP:
$ PARAM = '约翰';#阵列( '姓名'=> '约翰');
“#”没有在PHP中发表评论; “//”的确如此
如果修复仍会导致空白页面,请打开错误报告和/或添加更多输出,以查看确切发生的情况。
我刚遇到同样的问题。
使用include_once
而不是require_once
解决了空白页问题。 当然,这不是完美的解决方案,因为: require,include和require_once之间的区别?
请在浏览器中验证服务器生成的HTML。 在我的例子中,结果包含XML标记,因此浏览器无法正确显示信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.