本文目录一览:
- 1、.net调用php的webservice时的安全身份认证该怎么做?谁做过给点思路?
- 2、PHP如何启动soap服务
- 3、PHP Web Service验证才能用,如何做?百度了半小时,都是一些白痴文章
- 4、php soap 怎么用,给点建议
- 5、令人费解的PHP SOAP错误问题,怎么解决
- 6、PHP怎么请求soap。其中要调用的那个方法的参数是这个方法的对象参数。到底该怎么调用。
.net调用php的webservice时的安全身份认证该怎么做?谁做过给点思路?
webservice传递的参数中可以包括几个系统级的验证参数,比如客户端独有的ID,密码,时间戳。
然后客户端通过约定好的加密方式把这几个参数加密后得到一个密码字符串,三个参数连加密结果一起发过去。
服务器端也按同样方式把这三个参数加密一次,如果得到的结果和客户端发来的相同,就通过认证。
时间戳是发送的时间,毫秒级的,这个一直在变,所以每次的加密结果都不同,即使被人拦截到了也不能重用上一次的加密结果。记得设置时间戳的超时和判断大小,不要让过时的消息骗了你
PHP如何启动soap服务
修改PHP.ini文件,找到;extension=php_soap.dll去掉前面的分号,重起IIS或者apache就可以了
PHP Web Service验证才能用,如何做?百度了半小时,都是一些白痴文章
给你一个简单的例子(我喜欢用gbk字符集,所以代码中有字符编码处理)服务端 soap_s.phfunction auth($s){ if($s != 'kyzy'){ throw new SoapFault('auth', "$s ".iconv('gbk', 'utf-8', '您无权访问')); } return $s;}function say($s){ return 'Hi'.$s;}$server = new SoapServer(null, array('uri' = ''));$server-addFunction('say');$server-addFunction('auth');$server-handle();客户端 saop_c.ph$client = new SoapClient(null, array('uri' = '', 'location' = '', 'trace' = true, 'encoding'='GBK'));$data = 'kyzy';$header = new SoapHeader('', 'auth', $data, false, SOAP_ACTOR_NEXT);$client-__setSoapHeaders(array($header));try { echo $client-say('www');} catch (Exception $e) { echo $e-getMessage();}通常 SoapHeader 验证方法不会出现在 WSDL 中,所以验证方法名和验证数据需要双方私下约定每次 soap 方法的执行,验证都会自动执行
php soap 怎么用,给点建议
实际上,soap基本都是通过http传递的。
nusoap使用curl来post或者get信息到web services,而soap_server和普通的程序类似,接受get或者post信息,但是经过了解析之后,呈现给你的就是规定的信息。
ajax也是类似的道理啊。
令人费解的PHP SOAP错误问题,怎么解决
在windows下开启soap扩展
在php.ini中去掉extension=php_soap.dll前的分号
将php_soap.dll(在php安装路径下可以找到)复制到system32下
重启服务器
PHP怎么请求soap。其中要调用的那个方法的参数是这个方法的对象参数。到底该怎么调用。
header('Content-Type: text/html; charset=UTF-8');
//链接
$http='';
//参数,很重要,之前搞的时候一直传不了参数过去,原来是这样的,搞死我了
$params=array('string'='xxx','string1'='xxxx');
$client = new SoapClient($http,array('encoding'='utf-8','cache_wsdl' = 0,'compression'=true));
$client-soap_defencoding = 'utf-8';
$client-xml_encoding = 'utf-8';
//请求返回的数据
$return = $client-$fun($params);//parameters