• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

简单范例php调用C#WebService

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

[WebMethod]
 public string HelloWorld()
 {
     return "Hello World";
 }

ok,一切就绪。在某php文件中如下写法:

<?php
    require_once('nusoap.php');
    /*index.php*/
    $client = new SoapClient('http://localhost/webservice1/service1.asmx?wsdl', true);
    $str = $client->call('HelloWorld');
    if(!$err = $client->getError())
    { 
        echo "return:", $str['HelloWorldResult'];
    }
    else
    {
        echo "error:", $err;
    }
?>        

 


第一次搞这个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";
    }
?>    

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#数组、多维数组(矩形数组)、锯齿数组(交叉数组)发布时间:2022-07-10
下一篇:
C#类类型发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap