【问题标题】:how to call a C# .NET web service from a php client如何从 php 客户端调用 C# .NET Web 服务
【发布时间】:2010-06-19 06:31:01
【问题描述】:

我有一个由 Visual Studio Web 服务项目自动生成的 Hello World c# ASP .NET Web 服务。我想从 php 客户端调用它。我能知道怎么做吗?如果有人能提供小代码示例就更好了。我在 php 方面没有太多经验,对 Web 服务也没有深入的了解,所以很难做到这一点。

谢谢

【问题讨论】:

    标签: c# php asp.net web-services


    【解决方案1】:

    由于 PHP 是一种动态语言,它非常简单。您只需要一个库 (SoapUI) 和 WSDL。如果您有 Web 服务的位置 (URL),请将 ?WSDL 添加到 URL 的末尾,并且您有定义。然后它只是从那里调用服务。

    <?php
    require_once('libs/nusoap.php');
    $wsdl="http://thedomain.com/theservice/endpoing.svc?wsdl";
    $client=new soapclient($wsdl, 'wsdl');
    $param=array('number1'=>'2', 'number2'=>'3');
    echo $client->call('add', $param);
    ?>
    

    你可以在这里找到图书馆:http://www.soapui.org/

    【讨论】:

    • 谢谢。我有网络服务的网址,我也安装了soapui。我能知道 require_once('libs/nusoap.php') 是什么意思吗?它找不到路径“libs/nusoap.php”并给出以下错误。在第 6 行的 C:\wamp\www\hello.php 中打开所需的 'libs/nusoap.php' (include_path='.;C:\php5\pear') 失败
    • 我明白了。我正在使用 nusoap 作为肥皂客户端库。我尝试使用以下命令调用 Web 服务的 HelloWorld 方法: require_once('lib/nusoap.php'); $wsdl="localhost:64226/Service1.asmx?wsdl"; $client=new soapclient($wsdl, 'wsdl'); echo $client->call('HelloWorld');但它不返回输出“Hello World”。而是打印单词“Array”。任何想法 ?我知道这一定是我要问的一个非常基本的问题:)
    • 对不起,我已经习惯了 PHP4,所以如果你有 PHP5,一个更好的解决方案是使用内置的 SoapClient。示例代码(经过测试)运行如下: [PHP Client] localhost/WebService1/Service1.asmx?wsdl'); $result = $client->SayHello(new SayHello());回声 $result->SayHelloResult; ?> [ASMX 服务] [WebMethod] public string SayHello(String name) { return "Hello" + name; }
    • 非常感谢本尼!它在 php 5 中使用 SoapClient 对我有用。最初我收到一个错误,说它是未定义的,然后我意识到我没有在 WAMP 中启用 php_soap 扩展。启用后它起作用了:)
    【解决方案2】:

    假设它是一个 SOAP Web 服务,您应该只能使用普通的php SOAP library。现在,根据我的经验,SOAP 可移植性并不完全符合它的全部要求,因此您可能需要稍作调整(特别是测试空数组的工作方式等),但这应该是一个很好的起点。

    我链接到的文档看起来不错,但是如果您搜索“php SOAP 教程”,您会得到很多点击,这将引导您逐步完成。

    另一个选项是nusoap。我无法评论哪个实现更好。

    【讨论】:

    • 谢谢。我想过使用nusoap
    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 2014-09-04
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多