您好,欢迎访问一九零五行业门户网

使用PHP内置SOAP要点分析_PHP教程

对于刚刚接触
由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端,xmethods提供了一些有趣的选择,这里选择其中的map ip address to country服务,功能很简单,就是提供一个ip地址,然后返回国家名称。
先创建一个client实例:
$client = new soapclient
(’http://www.ecubicle.net/
iptocountry.asmx?wsdl’, 
array(’trace’ => true)); 
通过设置trace为true,我们可以在稍后使用__getlastrequest,__getlastrequestheaders,__getlastresponse,__getlastresponseheaders等方法得到一些信息,在程序调试阶段,这些信息很有用,程序投入使用时,则不必使用此参数。除了trace参数,还可以设定login和password参数以实现http认证的功能,此外还有很多参数,可以参考官方文档。
创建了前面的$client实例后,我们可以先看看服务都提供了哪些方法:
print_r($client->__getfunctions());
服务方法的信息细节可以从wsdl里自己查阅,下面看看php内置soap怎么调用一个实际的方法,$ip=’64.156.132.140′:
$result = $client->__soapcall
(’findcountryasstring’, array
(’findcountryasstring’ => 
array(’v4ipaddress’ => $ip)));  print_r($result->
findcountryasstringresult); 
还可以这样调用:
$result = $client->
findcountryasstring(array
(’v4ipaddress’ => $ip));  print_r($result->
findcountryasstringresult); 
php内置soap还可以这样调用:
$params = new soapparam(array(’v4ipaddress’ 
=> $ip), ‘findcountryasstringsoapin’);  $result = $client->__soapcall
(’findcountryasstring’, array($params));  print_r($result->findcountryasstringresult); 
还可以这样调用:
$params = new soapparam(array(’v4ipaddress’ 
=> $ip), ‘findcountryasstringsoapin’);  $result = $client->findcountryasstring($params);  print_r($result->findcountryasstringresult); 
在使用php内置soap时,参数如何传递有点不好说明,这需要研读wsdl描述文档,不过看wsdl实在是一件无趣的事情,所以我觉得你可以先大概看一下wsdl,然后凭感觉去尝试传递参数,其中配合trace调试,一般来说,试几次就能找到正确的传递方式,如果还不行,再通过__getlastrequest,__getlastrequestheaders等方法提供的信息配合wsdl描述文档仔细研究。
http://www.bkjia.com/phpjc/446064.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/446064.htmltecharticle对于刚刚接触 由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端,xmethods提供了一些有趣的选择,这里选择其中的map...
其它类似信息

推荐信息