浅谈PHP调用Webservice思路及源码分享
方法一:直接调用
<? /******************************************************************************/ /* 文件名:soapclient.php /* 说 明:WebService接口客户端例程 /******************************************************************************/ include('NuSoap.php'); //创建一个soapclient对象,参数是server的WSDL $client=newsoapclient('http://localhost/Webservices/Service.asmx?WSDL','wsdl'); //参数转为数组形式传递 $aryPara=array('strUsername'=>'username','strPassword'=>MD5('password')); //调用远程函数 $aryResult=$client->call('login',$aryPara); //echo$client->debug_str; /* if(!$err=$client->getError()){ print_r($aryResult); }else{ print"ERROR:$err"; } */ $document=$client->document; echo<<<SoapDocument <?xmlversion="1.0"encoding="GB2312"?> <SOAP-ENV:EnvelopeSOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:si="http://soapinterop.org/xsd"> <SOAP-ENV:Body> $document </SOAP-ENV:Body> </SOAP-ENV:Envelope> SoapDocument; ?>
<? /******************************************************************************/ /* 文件名:soapclient.php /* 说 明:WebService接口客户端例程 /******************************************************************************/ include('NuSoap.php');
//创建一个soapclient对象,参数是server的WSDL $client=newsoapclient('http://localhost/Webservices/Service.asmx?WSDL','wsdl');
//参数转为数组形式传递 $aryPara=array('strUsername'=>'username','strPassword'=>MD5('password'));
//调用远程函数 $aryResult=$client->call('login',$aryPara);
//echo$client->debug_str; /* if(!$err=$client->getError()){ print_r($aryResult); }else{ print"ERROR:$err"; } */
$document=$client->document; echo<<<SoapDocument <?xmlversion="1.0"encoding="GB2312"?> <SOAP-ENV:EnvelopeSOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:si="http://soapinterop.org/xsd"> <SOAP-ENV:Body> $document </SOAP-ENV:Body> </SOAP-ENV:Envelope> SoapDocument;
?>