php soap带验证

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

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

相关文章

preg_replace 修饰符

  PatternModifiers-规则表达式的修饰符      下面是当前规则表达式里可用的修饰.括号内的名字是那些修饰符的内部PCRE名字.      i(PCRE_CASELESS)...

PHP常用正则表达式汇总

1.    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    &quo...

Javascript 正则表达式使用手册

一.正则表达式匹配常用语法 “+”字符:规定表达式字符出现一次或多次。 “*”字符:规定表达式字符出现零次或多次。 “?”字符:规定表达式字符出现零次或一次。 ^ 匹配的是字符的开头 ,匹配的...

新的月份,换一个新的模板

新的月份,换一个新的模板

用了半天的时间做一个emlog模板,自己感觉还是不错的。emlog模板做起来还是很简单的!...

PHP攻击网站防御代码-以及攻击代码反译

这是我无意中攻击一个网站发现的一个代码PHP有效的拦截住我的DDOS  <?php   //查询禁止IP   $ip =$_SERVER['R...

thinkphp 使用U方法自动生成URL超链接

ThinkPHP U方法 U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。 由于 ThinkPHP 支持各种不同的 URL...

发表评论

访客

看不清,换一张

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