PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
什么是SOAP
SOAP(Simple Object Access Protocol),是一种基于XML的协议,用于Web服务中的通信。它是一种轻量级的数据交换格式,依赖于HTTP协议进行通信,同时可以使用多种其他协议来提供传输服务。
SOAP是一种简单、轻量级的网络传输协议,它以XML形式封装数据,通过HTTP协议远程传输。
相关概念
- WSDL(Web Service Description Language):Web服务的描述语言,提供了一种机制来描述一个Web服务。
- UDDI(Universal Description Discovery and Integration):Web服务的注册标准,用来让企业在共享Web服务时发布自己的服务。
服务端使用SoapServer
- 定义一个类,实现要发布的函数。
class MyService {
public function hello($name) {
return "Hello, $name!";
}
}
- 创建一个
SoapServer
对象,指定WSDL文件和类名。
$wsdl = "http://localhost/MyService.wsdl";
$server = new SoapServer($wsdl, array('soap_version' => SOAP_1_2));
$server->setClass('MyService');
- 启动服务。
$server->handle();
客户端使用SoapClient
- 创建
SoapClient
对象,指定WSDL文件。
$wsdl = "http://localhost/MyService.wsdl";
$client = new SoapClient($wsdl, array('soap_version' => SOAP_1_2));
- 调用服务端方法。
$result = $client->hello("World");
echo $result;
示例一
服务端代码,创建一个可以计算两个数之和的WebService,并发布到Web上。
class MyService {
public function add($a, $b) {
return $a + $b;
}
}
$wsdl = "http://localhost/my_service.wsdl";
$server = new SoapServer($wsdl, array('soap_version' => SOAP_1_2));
$server->setClass('MyService');
$server->handle();
客户端代码,调用WebService计算两个数之和。
$wsdl = "http://localhost/my_service.wsdl";
$client = new SoapClient($wsdl, array('soap_version' => SOAP_1_2));
$result = $client->add(3, 4);
echo $result;
输出结果:7
示例二
服务端代码,创建一个可以查询天气的WebService,并发布到Web上。
class MyService {
public function getWeather($city) {
$weather = array(
'北京' => '晴',
'上海' => '小雨',
'广州' => '多云',
'深圳' => '晴'
);
return isset($weather[$city]) ? $weather[$city] : '未知';
}
}
$wsdl = "http://localhost/my_service.wsdl";
$server = new SoapServer($wsdl, array('soap_version' => SOAP_1_2));
$server->setClass('MyService');
$server->handle();
客户端代码,调用WebService查询天气。
$wsdl = "http://localhost/my_service.wsdl";
$client = new SoapClient($wsdl, array('soap_version' => SOAP_1_2));
$result = $client->getWeather("北京");
echo $result;
输出结果:晴
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】 - Python技术站