SOAP错误:编码:是否违反编码规则?
|
我正在尝试使用Yii提供Web服务。自动生成的wsdl在下面。我可以从命令行成功使用Web服务,但是通过Web浏览器,我得到了
SOAP-ERROR: Encoding: Violation of encoding rules
我是SOAP的新手,所以不确定如何调试问题。这是我用来使用Web服务的PHP代码:
<?php
$client=new SoapClient(\'{url omitted for security}\',
array(\'trace\'=>1,\'exceptions\'=>1));
try {
$result = $client->getPerson(90043412);
var_dump($result);
} catch (SoapFault $fault) {
echo $fault->getMessage() . \'<br />\';
echo \'REQUEST <br />\';
echo \'<pre>\';
echo $client->__getLastRequestHeaders();
echo $client->__getLastRequest();
echo \'</pre>\';
echo \'RESPONSE <br />\';
echo \'<pre>\';
echo $client->__getLastResponseHeaders();
echo $client->__getLastResponse();
echo \'</pre>\';
echo \'TRACE <br />\';
echo \'<pre>\';
var_dump($fault->getTrace());
echo \'</pre>\';
}
?>
这是WSDL:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<definitions xmlns=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:tns=\"urn:PersonControllerwsdl\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:soap-enc=\"http://schemas.xmlsoap.org/soap/encoding/\" name=\"PersonController\" targetNamespace=\"urn:PersonControllerwsdl\">
<wsdl:types>
<xsd:schema targetNamespace=\"urn:PersonControllerwsdl\">
<xsd:complexType name=\"Person\">
<xsd:all>
<xsd:element name=\"PIDM\" type=\"xsd:integer\"/>
<xsd:element name=\"FirstName\" type=\"xsd:string\"/>
<xsd:element name=\"MiddleName\" type=\"xsd:string\"/>
<xsd:element name=\"LastName\" type=\"xsd:string\"/>
<xsd:element name=\"PrefFirstName\" type=\"xsd:string\"/>
<xsd:element name=\"CPOBox\" type=\"xsd:string\"/>
<xsd:element name=\"Classification\" type=\"xsd:string\"/>
<xsd:element name=\"Email\" type=\"xsd:string\"/>
<xsd:element name=\"PhotoFile\" type=\"xsd:string\"/>
</xsd:all>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name=\"getPersonRequest\">
<wsdl:part name=\"PIDM\" type=\"xsd:int\"/>
</wsdl:message>
<wsdl:message name=\"getPersonResponse\">
<wsdl:part name=\"return\" type=\"tns:Person\"/>
</wsdl:message>
<wsdl:portType name=\"PersonControllerPortType\">
<wsdl:operation name=\"getPerson\">
<wsdl:documentation></wsdl:documentation>
<wsdl:input message=\"tns:getPersonRequest\"/>
<wsdl:output message=\"tns:getPersonResponse\"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name=\"PersonControllerBinding\" type=\"tns:PersonControllerPortType\">
<soap:binding style=\"rpc\" transport=\"http://schemas.xmlsoap.org/soap/http\"/>
<wsdl:operation name=\"getPerson\">
<soap:operation soapAction=\"urn:PersonControllerwsdl#getPerson\" style=\"rpc\"/>
<wsdl:input>
<soap:body use=\"encoded\" namespace=\"urn:PersonControllerwsdl\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"/>
</wsdl:input>
<wsdl:output>
<soap:body use=\"encoded\" namespace=\"urn:PersonControllerwsdl\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name=\"PersonControllerService\">
<wsdl:port name=\"PersonControllerPort\" binding=\"tns:PersonControllerBinding\">
<soap:address location=\"https://localhost/whoswho/person/service?ws=1\"/>
</wsdl:port>
</wsdl:service>
</definitions>
没有找到相关结果
已邀请:
4 个回复
棠媳鳖
渴翅吮斡撤
查看文档,此版本不建议使用此选项。 我希望此评论可以节省时间。
捅瓶啡
提孺局缎