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

php中文网
发布: 2016-07-15 13:33:25
原创
1138人浏览过

对于刚刚接触

由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端,Xmethods提供了一些有趣的选择,这里选择其中的Map IP Address to Country服务,功能很简单,就是提供一个IP地址,然后返回国家名称。

先创建一个client实例:

$client = new SoapClient
(’http://www.ecubicle.net/
iptocountry.asmx?wsdl’, 
array(’trace’ =
> true)); 

立即学习PHP免费学习笔记(深入)”;

通过设置trace为true,我们可以在稍后使用__getLastRequest,__getLastRequestHeaders,__getLastResponse,__getLastResponseHeaders等方法得到一些信息,在程序调试阶段,这些信息很有用,程序投入使用时,则不必使用此参数。除了trace参数,还可以设定login和password参数以实现HTTP认证的功能,此外还有很多参数,可以参考官方文档。

创建了前面的$client实例后,我们可以先看看服务都提供了哪些方法:

print_r($client->__getFunctions());

服务方法的信息细节可以从wsdl里自己查阅,下面看看PHP内置SOAP怎么调用一个实际的方法,$ip=’64.156.132.140′:

造点AI
造点AI

夸克 · 造点AI

造点AI 325
查看详情 造点AI

<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">></span><span>__soapCall<br />(&rsquo;FindCountryAsString&rsquo;, array<br />(&rsquo;FindCountryAsString&rsquo; =</span><span class="tag">></span><span> <br />array(&rsquo;V4IPAddress&rsquo; =</span><span class="tag">></span><span> $ip)));  </span></span></li><li><span>print_r($result-</span><span class="tag">><br /></span><span>FindCountryAsStringResult); </span></li></ol>
登录后复制

还可以这样调用:

<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">><br /></span><span>FindCountryAsString(array<br />(&rsquo;V4IPAddress&rsquo; =</span><span class="tag">></span><span> $ip));  </span></span></li><li><span>print_r($result-</span><span class="tag">><br /></span><span>FindCountryAsStringResult); </span></li></ol>
登录后复制

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

<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">params</span><span> = </span><span class="attribute-value">new</span><span> SoapParam(array(&rsquo;V4IPAddress&rsquo; <br />=</span><span class="tag">></span><span> $ip), &lsquo;FindCountryAsStringSoapIn&rsquo;);  </span></span></li><li><span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">></span><span>__soapCall<br />(&rsquo;FindCountryAsString&rsquo;, array($params));  </span></li><li class="alt"><span>print_r($result-</span><span class="tag">></span><span>FindCountryAsStringResult); </span></li></ol>
登录后复制

还可以这样调用:

<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">params</span><span> = </span><span class="attribute-value">new</span><span> SoapParam(array(&rsquo;V4IPAddress&rsquo; <br />=</span><span class="tag">></span><span> $ip), &lsquo;FindCountryAsStringSoapIn&rsquo;);  </span></span></li><li><span>$</span><span class="attribute">result</span><span> = $client-</span><span class="tag">></span><span>FindCountryAsString($params);  </span></li><li class="alt"><span>print_r($result-</span><span class="tag">></span><span>FindCountryAsStringResult); </span></li></ol>
登录后复制

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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446064.htmlTechArticle对于刚刚接触 由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端,Xmethods提供了一些有趣的选择,这里选择其中的Map...
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号