php wsdl客户端服务端示例

wsdl文件代码:

wsdl.wsdl

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="iptv" xmlns:impl="iptv" xmlns:intf="iptv"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="iptv">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="CSPResult">
<sequence>
<element name="Result" type="xsd:int"/>
<element name="ErrorDescription" nillable="true" type="soapenc:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="ExecCmdRequest">
<wsdl:part name="CSPID" type="soapenc:string"/>
<wsdl:part name="LSPID" type="soapenc:string"/>
<wsdl:part name="CorrelateID" type="soapenc:string"/>
<wsdl:part name="CmdFileURL" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="ExecCmdResponse">
<wsdl:part name="ExecCmdReturn" type="impl:CSPResult"/>
</wsdl:message>
<wsdl:portType name="CSPRequest">
<wsdl:operation name="ExecCmd" parameterOrder="CSPID LSPID CorrelateID
CmdFileURL">
<wsdl:input name="ExecCmdRequest" message="impl:ExecCmdRequest"/>
<wsdl:output name="ExecCmdResponse" message="impl:ExecCmdResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ctmsSoapBinding" type="impl:CSPRequest">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ExecCmd">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="ExecCmdRequest">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv"/>
</wsdl:input>
<wsdl:output name="ExecCmdResponse">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="iptv"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CSPRequestService">
<wsdl:port name="ctms" binding="impl:ctmsSoapBinding">
<wsdlsoap:address location="http://127.0.0.1/service.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>


客户端代码:

client.php

<?php
$xmlftp = 'demo.xml';
$correlateID = '123456789';
$wsdldir = "wsdl.wsdl";
$cspid = "123456";
$lspid = "654321";

$client = new SoapClient($<span style="font-family: Arial, Helvetica, sans-serif;">wsdldir</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>

$result = $client->ExecCmd($cspid, $lspid, $correlateID, $xmlftp);
$savearr['syncresult'] = $result->Result;
$savearr['syncdescription'] = $result->ErrorDescription;
var_dump($savearr);
</pre><p></p><p>服务端代码:</p><p>service.php</p><p></p><pre name="code" class="php"><?php
header('Content-Type: text/html; charset=utf-8');

$wsdl  = 'wsdl.wsdl';
$array = array();
$soap  = new SoapServer($wsdl,$array);
$soap->addFunction("ExecCmd");
$soap->handle();

//给客户端使用的方法
function ExecCmd($CSPID, $LSPID, $CorrelateID, $CmdFileURL){
	//具体的业务逻辑
        do($CSPID, $LSPID, $CorrelateID, $CmdFileURL);$arr = array();
$arr['Result'] = 0;
$arr['ErrorDescription'] = 'Receive XML file success;CSPID:'.$CSPID.', LSPID:'. $LSPID. ', CorrelateID:'.$CorrelateID.', CmdFileURL:'. $CmdFileURL;
return $arr;
}


//具体的业务逻辑
function do($CSPID, $LSPID, $CorrelateID, $CmdFileURL){

}


PHP WSDL客户端允许我们使用Web服务描述语言(WSDL)来访问和使用远程的Web服务。通过WSDL文件,我们可以了解到Web服务的功能,如可用的方法、参数和返回值等等。 PHP提供了多个扩展来处理WSDL客户端,其中最常用的是SOAP扩展。我们可以使用SOAP扩展来创建WSDL客户端并与Web服务进行通信。 首先,我们需要通过使用PHP的SoapClient类来创建一个WSDL客户端实例。在实例化时,我们需要提供Web服务的WSDL文件的URL作为参数。使用实例化后的客户端,我们可以直接调用Web服务的方法。 通过客户端实例,我们可以使用方法来调用远程Web服务。在调用方法时,我们需要提供所需的参数,并根据Web服务返回的数据类型接收返回结果。客户端会发送SOAP请求到Web服务,并等待响应。 在处理响应时,我们可以通过客户端实例的方法获取返回结果,如getResponse方法来获取完整的响应消息,或使用__soapCall方法来调用WebService的方法并返回结果。 此外,我们还可以使用其他方法来处理异常、设置请求头信息等。例如,使用addHeader方法可以为SOAP请求添加自定义的请求头信息。 总结来说,PHP WSDL客户端使我们能够通过WSDL文件与远程Web服务进行通信。我们可以使用SOAP扩展来创建WSDL客户端,并使用客户端实例来调用Web服务的方法和处理返回结果。通过这些功能,我们可以方便地与远程Web服务进行交互,并获取所需的数据。 希望以上回答对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值