简单范例php调用C# WebService

准备工作:
1. 安装IIS对于PHP的支持,看 这里
2. 要调用Web Service需要nusoap支持,只要弄个nusoap.php就可以了,把它放在要运行的php文件能够引用的地方,比如我放在同一目录下。
可以从 这里下载最新版本的NuSoap,不过貌似最近sourceforge被和谐了?
3. 创建一个C#的web service,这个就不多说了,我用vs2008的wizard创建了一个最简单的,让它运行在:http://localhost/webservice1/service1.asmx

其中有个web method像这样的:
1 [WebMethod]
2 public   string  HelloWorld()
3 {
4     return "Hello World";
5 }

ok,一切就绪。在某php文件中如下写法:
 1 <? php
 2 require_once ( ' nusoap.php ' );
 3 /* index.php */
 4 $client   =   new  SoapClient( ' http://localhost/webservice1/service1.asmx?wsdl ' ,   true );
 5 $str   =   $client -> call( ' HelloWorld ' );
 6 if ( ! $err   =   $client -> getError())
 7 {    
 8      echo   " return: " ,   $str [ ' HelloWorldResult ' ];
 9 }
10 else
11 {
12      echo   " error: " ,   $err ;
13 }
14 ?>
第一次搞这个php代码,只能意会了
这种方式不太好用,当使用PHPEclipse进行编译时,报告错误:
Debug Strict (PHP 5): /LocalizationTest/nusoap.php line 6496 - Assigning the return value of new by reference is deprecated
Compile Error: /LocalizationTest/nusoap.php line 7240 - Cannot redeclare class soapclient
有人说可以通过改名字的方式修改nusoap.php剔除这个错误,这样总是不方便,后来发现php5本身就支持SOAP调用Web Service:
<? php
    
// get localization strings from C# webservice
     $client   =   new  SoapClient( ' http://localhost/webservice1/Localization.asmx?wsdl ' );

     echo   " Call web service method from C# WebService:\n " ;
     $result   =   $client -> GetLocalizationResource();

    
if ( ! is_soap_fault( $result ))
    {    
        
echo   " return:\n " ,   $result -> GetLocalizationResourceResult;
    }
    
else
    {
        
echo   " soap call fault " ;
    }
?>
php soap调用的详细信息请参照 这里

转载于:https://www.cnblogs.com/sayo/archive/2008/07/12/1241533.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值