php soap带验证

飘逸的风13年前 (2012-11-17)程序6734

Server端

<?php

class Server {

private $authenticated = false;

 

public function auth($authcode) {

if($authcode === '123456789') {

$this->authenticated = true;

return true;

} else {

throw new SoapFault('403', '403 Forbidden');

}

}

 

public function getData() {

if(!$this->authenticated) {

throw new SoapFault('403', '403 Forbidden');

}

$data = array(

'text' => 'ni mei a'

);

return json_encode($data);

}

}

 

/*//生成wsdl文件

include("SoapDiscovery.class.php");

 

$disco = new SoapDiscovery('Server','Server');

 

$handle = fopen('server.wsdl', 'w+');

fwrite($handle, $disco->getWSDL());

fclose($handle);

*/

 

 

$objSoapServer = new SoapServer("server.wsdl");

// $objSoapServer->setClass("Server");

$serv = new Server;

$objSoapServer->setObject($serv);

$objSoapServer->handle();

?>

 

Client端

 

<?php

try {

$client = new SoapClient('server.wsdl',array("exceptions" => 1));

 

$authvalues = new SoapVar(array('authcode' => '123456789',), SOAP_ENC_OBJECT);

 

$header = new SoapHeader('urn:Server', 'auth', $authvalues, false, SOAP_ACTOR_NEXT);

 

$client->__setSoapHeaders(array($header));

$data = $client->getData();

 

var_dump($data);

} catch (SoapFault $e) {

echo $e->faultstring;

?>

来源:https://type.so/php/php-auth-soap.html

相关文章

文章内链的实现方法

在很多的时候,我在浏览其他的网站发现文章中一写关键词都被加上了链接链向对应的页面,我就在想他们是怎么实现这个功能的?为什么这么做,这么做有什么好处?   当然有什么好处一看便知,无论是从...

php日历的高效写法

标题写的吸引人了些,不过我就觉得是挺高效的,我相信 之前看到过 irlvirus 写的 《php练习代码-日历》,我觉得效率都不是很好。 date()函数结合mktime() 可以得到一切东西...

htaccess 防止盗链,防止目录浏览等10大技巧

1. 反盗链 那些盗用了你的内容,还不愿意自己存储图片的网站是无耻的。你可以通过以下配置来放置别人盗用你的图片:   1     RewriteBase...

一些需要禁用的PHP危险函数

phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。...

龙圆 php 判断是否为搜索引擎蜘蛛函数 转载

/**  *    判断是否为搜索引擎蜘蛛  *  *    @author&nbs...

PHP无限级分类的简单实现方法

PHP无限级分类的简单实现方法

PHP无限级分类的简单实现方法,请看截图:   代码是:  <?php  header("Content-type: text/html;&n...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。