zoukankan      html  css  js  c++  java
  • 简单范例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

    [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:
    ";
        $result = $client->GetLocalizationResource();
    
        if(!is_soap_fault($result))
        { 
        echo "return:
    ", $result->GetLocalizationResourceResult;
        }
        else
        {
            echo "soap call fault";
        }
    ?>    
  • 相关阅读:
    【转载】如何保证消息的顺序性?
    【转载】如何保证消息的可靠性传输?
    Java 浅拷贝与深拷贝的区别
    int 与 Integer 的区别
    Systemd
    如何查看systemctl启动服务的日志journalctl
    centos7安装killall命令
    关闭root用户的ssh登录
    react带ts创建
    ts-类型别名、类型断言
  • 原文地址:https://www.cnblogs.com/wolfocme110/p/4130500.html
Copyright © 2011-2022 走看看