每个站长必备的免费域名

CO.CC:Free Domain

美国主机、虚拟主机咨询 购买指南 代购指南




虚拟主机分类



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

对于刚刚接触PHP语言的新手来说,对于PHP内置SOAP可能还是了解的不太多。PHP内置SOAP已经是属于OUT范畴的技术了,不过因为历史原因,时不时还是会用到它,以前都是用NuSOAP,现在准备试试PHP内置的SOAP扩展。PHP文件函数手册概览正确理解PHP抽象类应用PHP搜索数组的实现方法介绍详细解读PHP类的封装PHP图片加水印代码示例解析由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端,Xmethods提供了一些有趣的选择,这里选择其中的Map IP Address to Country服务,功能很简单,就是提供一个IP地址,然后返回国家名称。先创建一个client实例:$client=newSoapClient
(’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′:

  1. $result=$client->__soapCall
    (’FindCountryAsString’,array
    (’FindCountryAsString’=>
    array(’V4IPAddress’=>$ip))); print_r($result->
    FindCountryAsStringResult);

还可以这样调用:

  1. $result=$client->
    FindCountryAsString(array
    (’V4IPAddress’=>$ip)); print_r($result->
    FindCountryAsStringResult);

PHP内置SOAP还可以这样调用:

  1. $params=newSoapParam(array(’V4IPAddress’
    =>$ip),‘FindCountryAsStringSoapIn’); $result=$client->__soapCall
    (’FindCountryAsString’,array($params));
  2. print_r($result->FindCountryAsStringResult);

还可以这样调用:

  1. $params=newSoapParam(array(’V4IPAddress’
    =>$ip),‘FindCountryAsStringSoapIn’); $result=$client->FindCountryAsString($params);
  2. print_r($result->FindCountryAsStringResult);

在使用PHP内置SOAP时,参数如何传递有点不好说明,这需要研读wsdl描述文档,不过看wsdl实在是一件无趣的事情,所以我觉得你可以先大概看一下wsdl,然后凭感觉去尝试传递参数,其中配合trace调试,一般来说,试几次就能找到正确的传递方式,如果还不行,再通过__getLastRequest,__getLastRequestHeaders等方法提供的信息配合wsdl描述文档仔细研究。【责任编辑:曹凯 TEL:(010)68476606】

相关文章

标签: mx, pp

发表回复

 

 

 

你可以使用如下HTML标签

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>