PHP SOAP Web服务

PHP SOAP Web服务,php,web-services,soap,wsdl,wampserver,Php,Web Services,Soap,Wsdl,Wampserver,我正在尝试创建一个简单的PHP Web服务,因为我是这方面的新手。我决定用SOAP开发它。我使用WAMP作为服务器,问题是我无法运行脚本,也无法获取WSDL文件 下面是server.php的代码: <?php //call library require_once ('lib/nusoap.php'); //using soap_server to create server object $server = new soap_server; //register a funct

我正在尝试创建一个简单的PHP Web服务,因为我是这方面的新手。我决定用SOAP开发它。我使用WAMP作为服务器,问题是我无法运行脚本,也无法获取WSDL文件

下面是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'); 

// create the function 
function get_message($your_name) 
{ 
if(!$your_name){ 
return new soap_fault('Client','','Put Your Name!'); 
} 
$result = "Hello World ".$your_name .". Thanks for Your First Web Service Using PHP with SOAP"; 
return $result; 
} 
// create HTTP listener 
$server->service($HTTP_RAW_POST_DATA); 
exit(); 
?>  
<?php 
require_once ('lib/nusoap.php'); 
//Give it value at parameter 
$param = array( 'your_name' => 'Omar'); 
//Create object that referer a web services 
$client = new soapclient('http://localhost/WebServiceSOAP/server.php'); 
//Call a function at server and send parameters too 
$response = $client->call('get_message',$param); 
//Process result 
if($client->fault) 
{ 
echo "FAULT: <p>Code: (".$client->faultcode."</p>"; 
echo "String: ".$client->faultstring; 
} 
else 
{ 
echo $response; 
} 
?> 

下面是跑步的截图:

下面是client.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'); 

// create the function 
function get_message($your_name) 
{ 
if(!$your_name){ 
return new soap_fault('Client','','Put Your Name!'); 
} 
$result = "Hello World ".$your_name .". Thanks for Your First Web Service Using PHP with SOAP"; 
return $result; 
} 
// create HTTP listener 
$server->service($HTTP_RAW_POST_DATA); 
exit(); 
?>  
<?php 
require_once ('lib/nusoap.php'); 
//Give it value at parameter 
$param = array( 'your_name' => 'Omar'); 
//Create object that referer a web services 
$client = new soapclient('http://localhost/WebServiceSOAP/server.php'); 
//Call a function at server and send parameters too 
$response = $client->call('get_message',$param); 
//Process result 
if($client->fault) 
{ 
echo "FAULT: <p>Code: (".$client->faultcode."</p>"; 
echo "String: ".$client->faultstring; 
} 
else 
{ 
echo $response; 
} 
?> 

下面是跑步的截图:

另外,这个错误一直困扰着我:


未定义变量:
HTTP\u RAW\u POST\u DATA

您可以尝试下面的代码吗

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


你能试试下面的代码吗

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


您正在尝试使用未定义的变量
$HTTP\u RAW\u POST\u DATA
。在PHP7中,此挂钩被移除。你可以阅读

相反,我建议这样做:

$server->service(file_get_contents("php://input"));

您正在尝试使用未定义的变量
$HTTP\u RAW\u POST\u DATA
。在PHP7中,此挂钩被移除。你可以阅读

相反,我建议这样做:

$server->service(file_get_contents("php://input"));

谢谢你的帮助,但我不想添加我自己的wsdl文件。取而代之的是,我希望它像j2ee一样生成。谢谢您的帮助,但我不想添加我自己的wsdl文件。取而代之的是,我希望它像J2EE一样生成谢谢你的回复,错误消失了,但是niw没有打印wsdl文件是的,你应该转发SOAP原则。WSDL是该标准必须具备的要点。您可以在这里阅读有关PHP中的SOAP的内容:感谢您的回复,错误已消失,但niw没有打印wsdl文件。是的,您应该转发SOAP原则。WSDL是该标准必须具备的要点。您可以在此处阅读有关PHP中的SOAP的内容: