关于zend_soap如何来进行web service就不多说了
详见http://www.cnblogs.com/zcy_soft/archive/2011/01/10/1932177.html
参考代码:http://download.youkuaiyun.com/source/2967369
这个帖子重点讲讲如何用 zend_soap 框架来进行用户验证
必要前提懂的参考代码中的内容
原理:客户端访问服务器,首先发出soapheader信息,先进行验证,如果soapheader中的内容是正确的,
那么将会改变服务器端改成已经授权,否则就跑出错误
考代代码
客户端SoapController.php 访问地址:http://test.localhost:8080/soap/client
注意:发送的SoapHeader里面,
"userConfirmation" :接受soapheader并处理的方法
array("test","888888") :给处理soapheader方法的两个参数
代码
$client
=
new
Zend_Soap_Client(
"
http://tools.localhost:8080/soapserver/index?wsdl
"
);
$soapUri
=
$this
->
_WSDL_URI;
$client
->
addSoapInputHeader(
new
SoapHeader(
$soapUri
,
"
userConfirmation
"
,
array
(
"
test
"
,
"
888888
"
)
)
);
$xmlConente
=
file_get_contents
(
'
C:\TestPhp\public\t3.xml
'
);
echo
$client
->
SyncCrawlerCV(
$xmlConente
);
die
;
服务器端 SoapserverController.php wsdl访问地址:http://tools.localhost:8080/soapserver/index?wsdl
注意:
代码
private
function
handleWSDL() {
$autodiscover
=
new
Zend_Soap_AutoDiscover();
//
类名要注意一致
$autodiscover
->
setClass(
'
Dhr_SoapService
'
);
$autodiscover
->
handle();
}
private
function
handleSOAP() {
$soap
=
new
Zend_Soap_Server(
'
http://tools.localhost:8080/soapserver/index?wsdl
'
);
$soap
->
setClass(
'
Dhr_SoapService
'
);
$soap
->
handle();
}
public
function
indexAction() {
//
判断请求中是否有wsdl有就自动生成wsdl的uri否则启动soap服务
if
(
isset
(
$_GET
[
'
wsdl
'
])) {
$this
->
handleWSDL();
}
else
{
$this
->
handleSOAP();
}
}
服务器端关键代码
代码
class
Dhr_SoapService {
public
$authorized
=
false
;
//
other param
/*
*
* a main function can be sync crawler cv
* @param string $XMLString
* @return string
*/
public
function
SyncCrawlerCV(
$XMLString
) {
$this
->
xmlMessageObj
=
new
xmlMessage();
if
(
!
$this
->
authorized){
$this
->
xmlMessageObj
->
createSon(
'
exceptions
'
,
'
No login!
'
);
return
$this
->
xmlMessageObj
->
getXML();
}
//
do something
}
/*
*
* method for user comfirmaation
* @param string $userInfo
*/
public
function
userConfirmation(
$userName
,
$passWord
){
if
(
$userName
==
'
test
'
&&
$passWord
==
'
888888
'
){
$this
->
authorized
=
true
;
}
}
//
other function s
}
本文介绍如何使用Zend_SOAP框架实现Web服务中的用户验证过程。客户端通过SOAP头发送验证信息,服务器端根据这些信息确定是否授权操作。

114

被折叠的 条评论
为什么被折叠?



