计算机故障交流论坛
域名注册

一个.NET调试PHP Web Service的典型例子

发表时间:09-8-12   来源:chinaz.com   点击:

最近一个项目由“WinForm直接访问DB2”移植到“WinForm通过PHP Web Service来访问DB2”。

(优点是php可以架在Linux上,而Linux是免费的)

这个命题的难点不是访问DB2,而是.NET调用PHP的Web Service。对于我这个长期作.NET,之前一直以为只有.NET才可以做Web Service……的人来说,真是有点强“聪”所难了。

但是问题还是要解决的,期限就摆在眼前呢。经过一番调查,终于有了眉目,现在分享给大家。

首先要说明的,PHP服务器需要至少需要两个文件——一个WSDL文件和一个PHP文件。WSDL文件是一种机读的XML文件,用于描述WebService提供的服务和调用方法(对于.NET则可以自动生成调用代码,十分好用),php文件就是真正实现的WEB服务了。

1)PHP服务器端代码

1-1)TestWebService.php代码

 

以下为引用的内容:

<?php
class TestWebService
{
    
public function HelloWorld()
    {
        
return array("HelloWorldResult"=>"Hello");
    }

    
public function GetArray($args)
        {
          
/*
           注意,Web Service的方法在声明时至多一个参数,
            可是在调用该方法时就必须传value1,value2两个参数。
            (这一点十分令人费解,我的理解是,在调用该方法时,系统把所有参数都放到一个对象里传过来的)
          
*/

        $value1
 = $args->value1;  
        
$value2 = $args->value2;//这两句是获取真正的参数
 
        
$arry = array($value1,$value2);

        
//返回值也很特别,不是直接返回$arry,而是把它放到一个对象里再返回。
        
return array("GetArrayResult"=>$arry);
    }
}

//创建WebSevice实例
$server
 = new SoapServer("TestWebService.wsdl");
//指定类名
$server
->setClass("TestWebService");

$server->handle();


?>

 第1页:一个.NET调试PHP Web Service的典型例子(1)   第2页:一个.NET调试PHP Web Service的典型例子(2)  

© CopyRight 2008-2010, JSJGZ.CN, 计算机故障 Inc. All Rights Reserved

闽ICP备09000710号 增值电信业务经营许可证闽B2-20080004号