教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 网站编程 > PHP教程 >

php5与SOAP服务交互的SoapClient与nusoap

时间:2012-11-26 11:17来源:未知 作者:ken 点击:

和大家分享下:
值得注意的是要保持和SoapClient接口一致的话,有几个地方要注意下:
1.nusoap_client的构造函数第二个参数要传递true,以说明访问的是一个wsdl。
2.然后要设置对应的编码,否则容易导致乱码
3在nusoap调用服务调用的时候也只能用call(方法名,参数键值对数组)的方式进行调用,soapclient的参数也是更简单按顺序构造的数组,没有用键值方式。

nusoap:
$this->service = new nusoap_client("http://localhost/moas/service.php?class=myworkManager&wsdl",true);    
$this->service->soap_defencoding = 'utf-8';
$this->service->decode_utf8 = false;
$this->service->xml_encoding = 'utf-8';
$params = array("user"=>$user,"pwd"=>$pwd);
$result = $this->array_to_obj($this->service->call("getTicket",$params));
print_r($result->name);

4.最关键的一点,对于复杂对象nusoap的返回值是一个array,不同于SoapClient的stdObject,为了保持兼容性,搞了一个函数来进行数组和对象的转换,就是上面的array_to_obj ,实现过程如下:
function array_to_obj($array)
        {
            $obj = new stdClass();
            foreach ($array as $key => $value)
            {
                if (is_array($value))
                {
                    $obj->$key = $this->array_to_obj($value);
                   
                }
            else
            {
                $obj->$key = $value;
            }
        }
            return $obj;
        }

NuSOAP是一组功能强大的PHP类,使得使用和创建SOAP消息变得相当简单。NuSOAP由Dirtrich Ayala编写,可以无缝地与很多最流行的SOAP服务实现交互,它遵循LGPL发布。NuSOAP提供了很多令人印象深刻的特性,包括:站长教学网 eduyo.com

 

  ●简单:NuSOAP的面向对象方法隐藏了SOAP消息组装、解析、提交和接收的有关细节,使用户集中于应用程序本身。

 

  ●WSDL生成和导入:NuSOAP可以生成一个对应于所发布Web服务的WSDL文档,并且能导入一个WSDL引用在NuSOAP客户端使用。

 

  ●代理类:NuSOAP可以生成的一个代理类,允许调用远程方法,如同调用本地方法一样。

 

  ●HTTP代理:出于多种原因(安全性和审计是其中两个原因),有些客户端被强制将请求委托给HTTP代理,由代理代表客户端执行请求。也就是说,需要所有SOAP请求都传递给此代理,而不是直接查询服务器。NuSOAP为指定代理服务器提供了基本支持。

 

  ●SSL:如果可以通过PHP使用CURL扩展,NuSOAP还支持通过SSL的安全通信。

php的SoapClient是专门用来访问web服务的类

PHP5里的SoapClient:
$this->service = new SoapClient("http://localhost/frontservice/service.php?class=myworkManager&wsdl");
$result = $this->service->getTicket($user,$pwd);
print_r($result->name);
 

 

(责任编辑:ken)
TAG标签: php soap nusoap SoapClient
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容