我是webservices的新手, 我已经创建了一个基本的股票市场web服务,我已经成功地为它创建了服务器脚本并将其放在我的服务器中,现在我还创建了一个简洁的脚本并在同一服务器上访问它。它是否有效?可以从同一台服务器加入boh文件吗?或者我必须将它们放在不同的服务器中?如果是,那么Y?如果否,那么为什么我会得到空白页? 我正在使用nusoap库进行webservice。
当我在本地机器上使用我的cleint脚本时,我会收到这些错误
“已弃用:指定退货 新的参考价值是 不推荐使用 d:\ WAMP \ WWW \ pranav_test \的NuSOAP \ LIB \ nusoap.php 在线6506
致命错误:类'soapclient'没有 在发现 d:\ WAMP \ WWW \ pranav_test \ stockclient.php 在第3行“
服务器上的stockserver.php
<?php
function getStockQuote($symbol) {
mysql_connect('localhost','root','******');
mysql_select_db('pranav_demo');
$query = "SELECT stock_price FROM stockprices "
. "WHERE stock_symbol = '$symbol'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
return $row['stock_price'];
}
require('nusoap/lib/nusoap.php');
$server = new soap_server();
$server->configureWSDL('stockserver', 'urn:stockquote');
$server->register("getStockQuote",
array('symbol' => 'xsd:string'),
array('return' => 'xsd:decimal'),
'urn:stockquote',
'urn:stockquote#getStockQuote');
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
stockclient.php
<?php
require_once('nusoap/lib/nusoap.php');
$c = new soapclient('http://192.168.1.20/pranav_test/stockserver.php');
$stockprice = $c->call('getStockQuote',
array('symbol' => 'ABC'));
echo "The stock price for 'ABC' is $stockprice.";
?>
请帮忙......
答案 0 :(得分:1)
请发布一段源代码。
是的,您可以从也位于同一服务器上的客户端访问您的Web服务。
对于测试网络服务,我建议SoapUI,它适用于所有平台。
我建议使用php的soap扩展,然后使用nusoap,这是一个相当古老的库。
答案 1 :(得分:1)
我对PHP非常新,但在使用nusoap时我发现了同样的错误。 我明白在php 5你不能使用引用(使用&amp;运算符)分配新对象的返回值,所以简单...删除它:D ... 我做到了,我工作了。
答案 2 :(得分:1)
使用新的php版本5x启动soap客户端 - 与PHP5 soap库和NuSoap库存在冲突。
下载适用于PHP 5.3.x版的最新nusoap.php库(可以从sourceforge获取)
将客户端中的以下课程调用更改为:
$c = new soapclient
到
$c = new nusoap_client
您可能还想将以下内容添加到PHP ini文件中。
[nusoap_deprecated]
; Turn off deprecated messages on rendered pages
error_reporting = E_ALL & ~E_DEPRECATED