首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。
我测试的环境为:apache2.2.11 php5.2.10
做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端
serverSoap.php
$soap
=
new
SoapServer(
null
,
array(
'uri'
=>
"http://192.168.1.179/"));
//This uri is your SERVER ip.
$soap
->
addFunction(
'minus_func');
//Register the function
$soap
->
addFunction(
SOAP_FUNCTIONS_ALL);
$soap
->
handle();
function
minus_func(
$i
,
$j
){
$res
=
$i
-
$j;
return
$res;
}
//client端
clientSoap.php
try
{
$client
=
new
SoapClient(
null
,
array(
'location'
=>
"http://192.168.1.179/test/serverSoap.php"
,
'uri'
=>
"http://127.0.0.1/")
);
echo
$client
->
minus_func(
100
,
99);
}
catch (
SoapFault
$fault
){
echo
"Error: "
,
$fault
->
faultcode
,
", string: "
,
$fault
->
faultstring;
}
这是客户端调用服务器端函数的例子,我们再搞个class的。
//server端 serverSoap.php
$classExample
=
array();
$soap
=
new
SoapServer(
null
,
array(
'uri'
=>
"http://192.168.1.179/"
,
'classExample'
=>
$classExample));
$soap
->
setClass(
'chesterClass');
$soap
->
handle();
class
chesterClass
{
public
$name
=
'Chester';
function
getName()
{
return
$this
->
name;
}
}
//client端 clientSoap.php
try
{
$client
=
new
SoapClient(
null
,
array(
'location'
=>
"http://192.168.1.179/test/serverSoap.php"
,
'uri'
=>
"http://127.0.0.1/")
);
echo
$client
->
getName();
}
catch (
SoapFault
$fault
){
echo
"Error: "
,
$fault
->
faultcode
,
", string: "
,
$fault
->
faultstring;
}
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。