soap 无法拓展 php,PHP:SOAP Web服务无法正常工作

我正在学习如何使用SOAP在PHP中创建和使用Web服务.我的client.php文件是这样的:

require_once "lib/nusoap.php";

$client = new nusoap_client("http://localhost/ehsanashar/webservice/service.php?wsdl");

$book_name = "xyz";

$response = $client->call("price", array("name" => "$book_name"));

if ($response == null) {

echo "Nothing Found";

} else {

echo "Book Data: ". $response;

}

和我的service.php是这样的:

require_once "lib/nusoap.php";

require_once "function.php";

$server = new nusoap_server();

$server->configureWSDL('webservice', 'urn:webservice');

$server->register(

"price",

array("name" => "xsd:string"),

array("return" => "xsd:integer")

);

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';

$server->service($HTTP_RAW_POST_DATA);

它需要一个名为function.php的文件,如下所示:

function price($name) {

$details = array(

'abc' => 100,

'xyz' => 200

);

foreach ($details as $n => $p) {

if ($name == $n) {

$price = $p;

}

return $price;

}

}

当我运行文件client.php时,Theresponse为null,但不应为空,问题出在哪里?有什么帮助吗?

解决方法:

尝试这个

湿地

在client.php中

require_once ('lib/nusoap.php');

$client = new soapclient('http://localhost/SOAP/server.php');

//Call a function at server and send parameters too

//$response = $client->call('get_message',$param);

$param = array( 'name' => 'xyz');

$response = $client->call('price',$param);

//Process result

if($client->fault)

{

echo "FAULT:

Code: (".$client->faultcode."

";

echo "String: ".$client->faultstring;

}

else

{

echo $response;

}

并在server.php中

//call library

require_once ('lib/nusoap.php');

//using soap_server to create server object

$server = new soap_server;

//register a function that works on server

$server->register('get_message');

$server->register('price');

// create the function

function get_message($your_name)

{

if(!$your_name){

return new soap_fault('Client','','Put Your Name!');

}

$result = "Welcome to ".$your_name .". Thanks for Your First Web Service Using PHP with SOAP";

return $result;

}

function price($name){

if(!$name){

return new soap_fault('Client','','Put Book name!');

}

$details=array(

'abc' => 100,

'xyz' => 200

);

foreach($details as $n => $p){

if($name == $n){

$price = $p;

}

}

return "price is ". $price;

}

// create HTTP listener

$server->service($HTTP_RAW_POST_DATA);

exit();

?>

对于XAMP

在server.php中

//call library

require_once ('lib/nusoap.php');

$URL = "www.your-url.com";

$namespace = $URL . '?wsdl';

//using soap_server to create server object

$server = new soap_server;

$server->configureWSDL('pricetesting', $namespace);

//register a function that works on server

$server->register('hello');

// create the function

function price($name){

if(!$name){

return new soap_fault('Client','','Put Book name!');

}

$details=array(

'abc' => 100,

'xyz' => 200

);

foreach($details as $n => $p){

if($name == $n){

$price = $p;

}

}

return "price is ". $price;

}

// create HTTP listener

$server->service($HTTP_RAW_POST_DATA);

exit();

?>

在client.php中

require_once ('lib/nusoap.php');

$client = new soapclient("http://localhost/soap/server.php?wsdl");

//Call a function at server and send parameters too

//$response = $client->call('get_message',$param);

$param = array( 'name' => 'abc');

$response = $client->call('price',$param);

//Process result

if($client->fault)

{

echo "FAULT:

Code: (".$client->faultcode."

";

echo "String: ".$client->faultstring;

}

else

{

echo $response;

}

?>

标签:web-services,php,soap

来源: https://codeday.me/bug/20191119/2036198.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值