Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP轻松使用web服务_Php_Web Services_Visual Studio_Wsdl - Fatal编程技术网

如何从PHP轻松使用web服务

如何从PHP轻松使用web服务,php,web-services,visual-studio,wsdl,Php,Web Services,Visual Studio,Wsdl,是否有任何PHP工具可用于生成代码,以便根据其特性使用a?类似于在Visual Studio中单击“添加Web引用”或Eclipse插件,后者对Java执行相同的操作。好的,这些功能是特定于您在这些语言中进行开发所使用的工具的 如果(例如)您使用记事本编写代码,您就不会有这些工具。所以,也许你应该问你正在使用的工具的问题 对于PHP:我过去使用过。我喜欢它,因为它只是一组可以包含的PHP文件。web服务器上没有要安装的内容,也没有要更改的配置选项。它还支持WSDL,这是一个额外的好处。我在这方面

是否有任何PHP工具可用于生成代码,以便根据其特性使用a?类似于在Visual Studio中单击“添加Web引用”或Eclipse插件,后者对Java执行相同的操作。

好的,这些功能是特定于您在这些语言中进行开发所使用的工具的

如果(例如)您使用记事本编写代码,您就不会有这些工具。所以,也许你应该问你正在使用的工具的问题


对于PHP:

我过去使用过。我喜欢它,因为它只是一组可以包含的PHP文件。web服务器上没有要安装的内容,也没有要更改的配置选项。它还支持WSDL,这是一个额外的好处。

我在这方面取得了巨大的成功。它将自动为web服务中使用的所有对象和方法创建包装类。

在PHP 5中,您可以使用WSDL调用web服务函数:

$client现在是一个对象,它具有some.wsdl中定义的类方法。因此,如果WSDL中有一个名为getTime的方法,那么您只需调用:

$result = $client->getTime();

结果(显然)是$result变量。您可以使用uu getFunctions方法返回所有可用方法的列表。

这说明了如何使用PHP SoapClient调用api web服务。

您好,我从本网站获得了以下信息:

web服务具有方法
Add
,该方法采用两个参数:

<?php
    $client = new SoapClient("http://localhost/csharp/web_service.asmx?wsdl");

     print_r( $client->Add(array("a" => "5", "b" =>"2")));
?>

假设您获得了以下服务:

<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/">
    <x:Header/>
    <x:Body>
        <int:authenticateLogin>
            <int:LoginId>12345</int:LoginId>
        </int:authenticateLogin>
    </x:Body>
</x:Envelope>

如您所见,XML中指定的项在PHP代码中使用,但LoginId值可以更改。

尝试解析VMWares vimService wsdlUpdate:link的Bombs已更改,现在可以工作,指向github,因此路过的用户不应该因为旧的链接(当时非常有用)而跳过工作链接注释:)这很好,但要快速开始使用
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://thesite.com/">
    <x:Header/>
    <x:Body>
        <int:authenticateLogin>
            <int:LoginId>12345</int:LoginId>
        </int:authenticateLogin>
    </x:Body>
</x:Envelope>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <authenticateLoginResponse xmlns="http://thesite.com/">
            <authenticateLoginResult>
                <RequestStatus>true</RequestStatus>
                <UserName>003p0000006XKX3AAO</UserName>
                <BearerToken>Abcdef1234567890</BearerToken>
            </authenticateLoginResult>
        </authenticateLoginResponse>
    </s:Body>
</s:Envelope>
$client = new SoapClient('http://thesite.com/PortalIntegratorService.svc?wsdl');
$result = $client->authenticateLogin(array('LoginId' => 12345));
if (!empty($result->authenticateLoginResult->RequestStatus)
    && !empty($result->authenticateLoginResult->UserName)) {
    echo 'The username is: '.$result->authenticateLoginResult->UserName;
}