簡體   English   中英

PHP:SOAP Webservice無法正常工作

[英]PHP: SOAP Webservice not working properly

我正在學習如何使用SOAPPHP創建和使用webservice 我的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);

requires一個名為function.php的文件,如下所示:

function price($name) {
    $details = array(
        'abc' => 100,
        'xyz' => 200
    );

    foreach ($details as $n => $p) {
        if ($name == $n) {
            $price = $p;
        }
        return $price;
    }
}

當我運行文件client.phpresponse為空,但不應該是,問題出在哪里? 任何幫助?

試試這個

為了WAMP

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: <p>Code: (".$client->faultcode."</p>"; 
echo "String: ".$client->faultstring; 
} 
else 
{ 
echo $response; 
} 

並在server.php

<?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

    <?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

<?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: <p>Code: (".$client->faultcode."</p>"; 
echo "String: ".$client->faultstring; 
} 
else 
{ 
echo $response; 
} 
?> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM