0

我是 web 服务的新手,我已经创建了一个基本的股票市场 web 服务,我已经成功地为它创建了服务器脚本并将其放置在我的服务器中,现在我还创建了一个 clent 脚本并通过同一台服务器访问它。它有效吗?可以从同一台服务器访问 boh 文件吗?还是我必须将它们放在不同的服务器中?如果是 那么 Y?如果否,那么为什么我会得到空白页?我正在使用 nusoap 库进行网络服务。

当我在本地机器上使用我的客户端脚本时,我得到了这些错误

“已弃用:在第 6506 行的 D:\wamp\www\pranav_test\nusoap\lib\nusoap.php 中不建议通过引用分配 new 的返回值

致命错误:在第 3 行的 D:\wamp\www\pranav_test\stockclient.php 中找不到类 'soapclient'"

服务器上的 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.";
?>

请帮忙...

4

3 回答 3

1

请贴一段源代码。

是的,您可以从同样位于同一服务器上的客户端访问您的 Web 服务。

对于测试 web 服务,我推荐SoapUI,它适用于所有平台。

我建议使用 php 的内置soap 扩展,然后使用 nusoap,这是一个相当古老的库。

于 2010-04-29T05:34:27.597 回答
1

使用新的 php 版本 5x 启动一个肥皂客户端 - PHP5 肥皂库和 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
于 2010-12-27T00:48:15.677 回答
1

我对 PHP 真的很陌生,但是在使用 nusoap 时发现了同样的错误。我的理解是,在 php 5 中,您不能使用引用(使用 & 运算符)分配新对象的返回值,所以很简单......删除它:D......我做到了,我成功了。

于 2010-07-05T07:33:10.023 回答