【问题标题】:How to execute a web service using php如何使用 php 执行 Web 服务
【发布时间】:2012-02-07 03:22:02
【问题描述】:

我需要从 php 页面执行 Web 服务

网络服务位于以下网址

https://www.agemni.com/AgemniWebservices/service1.asmx

Web 服务使用 SOAP 协议来交换消息。

WSDL 信息可以位于https://www.agemni.com/AgemniWebservices/service1.asmx?WSDL

我们需要使用的那个服务中的函数是ValidateEntity

//ValidateEntity("username", "password", "companyID", 2, keys, values)

那么,我如何执行这个网络服务并从我的 php 页面获取结果

【问题讨论】:

标签: php web-services


【解决方案1】:

一个简单的例子,希望对你有帮助...

$service1 = new SoapClient('https://www.agemni.com/AgemniWebservices/service1.asmx');

//here you instanciate your object with those properties
$entity = new Entity();
$entity->strUsername = 'José';
$entity->strPassword = '123';
$entity->strCompanyName = 'Somethin';
$entity->0 //because your type is int

$res = $service1->ValidateEntity($entity);//here you send the information to your service's method, if I'm not mistaken, it must be a object

$res->ValidateEntityResult;//this is the return of your service.

正如我所说,它真的很简单但很有效。

【讨论】:

    【解决方案2】:

    查看来自 php.net 的 soap 调用帮助:

    http://www.php.net/manual/en/soapclient.soapcall.php

    【讨论】:

      【解决方案3】:

      您需要使用 PHP 的 SOAP 库...

      http://www.php.net/manual/en/soapclient.soapcall.php

      【讨论】:

        【解决方案4】:

        对于 https WebServices,您需要启用 openssl 扩展。 WS 使用 .net 表示该类使用类型提示,因此您需要创建 ValidateEntity 类,代码如下:

        $ws = new soapclient('https://www.agemni.com/AgemniWebservices/service1.asmx?wsdl');
        class ValidateEntity {
            public $strUsername,
            $strPassword,
            $strCompanyName,
            $objecttype;
            }
        
        $parameters = new ValidateEntity();
        $parameters->strUsername = 'username';
        $parameters->strPassword = 'password';
        $parameters->strCompanyName = 'company';
        $parameters->objecttype = 1;
        echo '<pre>';
        print_r($ws->ValidateEntity($parameters));
        echo '</pre>';
        

        【讨论】:

        • 检查 __getTypes() 和 __getFunctions() 是否有其他的肥皂调用
        • 使用 $ws->__call('ValidateEntity', array('parameters' => $parameters));用于文档/文字样式
        猜你喜欢
        • 1970-01-01
        • 2016-04-07
        • 2019-02-03
        • 1970-01-01
        • 1970-01-01
        • 2012-11-02
        • 2013-06-18
        • 1970-01-01
        • 2011-07-19
        相关资源
        最近更新 更多