PHP SOAP Web服务
我正在尝试创建一个简单的PHP Web服务,因为我是这方面的新手。我决定用SOAP开发它。我使用WAMP作为服务器,问题是我无法运行脚本,也无法获取WSDL文件 下面是server.php的代码: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
//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的内容: