ホームページ  >  記事  >  バックエンド開発  >  php调用c#soap---WSDLドキュメントには操作が定義されていません!

php调用c#soap---WSDLドキュメントには操作が定義されていません!

WBOY
WBOYオリジナル
2016-06-23 14:15:52924ブラウズ

PHP ソープ

<?xml version="1.0" encoding="UTF-8"?><definitions name="WebSmsSrv" targetNamespace="http://127.0.0.1:10000/WebSmsSrv.wsdl" xmlns:tns="http://127.0.0.1:10000/WebSmsSrv.wsdl" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="urn:WebSmsSrv" xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"><types> <schema targetNamespace="urn:WebSmsSrv"  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:ns="urn:WebSmsSrv"  xmlns="http://www.w3.org/2001/XMLSchema"  elementFormDefault="unqualified"  attributeFormDefault="unqualified">  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> </schema></types><message name="SendMessageRequest"> <part name="sUserName" type="xsd:string"/> <part name="sSender" type="xsd:string"/> <part name="sRecvs" type="xsd:string"/> <part name="nRecvCount" type="xsd:int"/> <part name="sContent" type="xsd:string"/> <part name="nFeeType" type="xsd:int"/></message><message name="SendMessageResponse"> <part name="sResp" type="xsd:string"/></message><message name="QuerySendHistRequest"> <part name="sUserName" type="xsd:string"/> <part name="nInMsgId" type="xsd:int"/></message><message name="QuerySendHistResponse"> <part name="sResp" type="xsd:string"/></message><message name="RecvMessageRequest"> <part name="sUserName" type="xsd:string"/> <part name="sRecv" type="xsd:string"/></message><message name="RecvMessageResponse"> <part name="sResp" type="xsd:string"/></message><message name="SendMessageExtRequest"> <part name="sUserName" type="xsd:string"/> <part name="sSender" type="xsd:string"/> <part name="sRecvs" type="xsd:string"/> <part name="nRecvCount" type="xsd:int"/> <part name="sContent" type="xsd:string"/> <part name="nFeeType" type="xsd:int"/></message><message name="SendMessageExtResponse"> <part name="sResp" type="xsd:string"/></message><portType name="WebSmsSrvPortType"> <operation name="SendMessage">  <documentation>Service definition of function ns__SendMessage</documentation>  <input message="tns:SendMessageRequest"/>  <output message="tns:SendMessageResponse"/> </operation> <operation name="QuerySendHist">  <documentation>Service definition of function ns__QuerySendHist</documentation>  <input message="tns:QuerySendHistRequest"/>  <output message="tns:QuerySendHistResponse"/> </operation> <operation name="RecvMessage">  <documentation>Service definition of function ns__RecvMessage</documentation>  <input message="tns:RecvMessageRequest"/>  <output message="tns:RecvMessageResponse"/> </operation> <operation name="SendMessageExt">  <documentation>Service definition of function ns__SendMessageExt</documentation>  <input message="tns:SendMessageExtRequest"/>  <output message="tns:SendMessageExtResponse"/> </operation></portType><binding name="WebSmsSrv" type="tns:WebSmsSrvPortType"> <SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="SendMessage">  <SOAP:operation style="rpc" soapAction=""/>  <input>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </input>  <output>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </output> </operation> <operation name="QuerySendHist">  <SOAP:operation style="rpc" soapAction=""/>  <input>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </input>  <output>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </output> </operation> <operation name="RecvMessage">  <SOAP:operation style="rpc" soapAction=""/>  <input>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </input>  <output>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </output> </operation> <operation name="SendMessageExt">  <SOAP:operation style="rpc" soapAction=""/>  <input>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </input>  <output>     <SOAP:body use="encoded" namespace="urn:WebSmsSrv" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>  </output> </operation></binding><service name="WebSmsSrv"> <documentation>gSOAP 2.7.8c generated service definition</documentation> <port name="WebSmsSrv" binding="tns:WebSmsSrv">  <SOAP:address location="http://127.0.0.1:10000/WebSmsSrv.cgi"/> </port></service></definitions>


include_once('soap/nusoap.php');			$client = new nusoap_client('http://127.0.0.1:10000','wsdl');			$client->soap_defencoding = 'utf-8';			$client->decode_utf8 = false;			$client->xml_encoding = 'utf-8';			$sContent=SetToHexString('test发送数据');//字符串转16进制			$param=array(array("sUserName"=>'xx',"sSender"=>'051000000000','sRecvs'=>'13851400500','nRecvCount'=>1,'sContent'=>$sContent,'nFeeType'=>0));			$result = $client->call('ns__SendMessage', $param);			print_r($client->getError())."<bR>";			print_r($result);


ポイントは残りわずかです。
WSDL ドキュメントに操作が定義されていないことをご容赦ください

ディスカッション (解決策) に返信

自分で作成してください

WSDL では次のメソッドのみが提供されます

string SendMessage(string $sUserName , string $sSender, string $sRecvs, int $nRecvCount, string $sContent, int $nFeeType)
[1] => string QuerySendHist(string $sUserName, int $nInMsgId)
[2] => string Re cvMessage ( string $sUserName, string $sRecv)
[3] => string SendMessageExt(string $sUserName, string $sSender, string $sRecvs, int $nRecvCount, string $sContent, int $nFeeType)


$result = $client->call('ns__SendMessage', $param);
そうすると、$param も一次元配列になるはずです
SendMessage のパラメータは構造体ではないので

解決できますNusoapと一緒に

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。