我有一个请求,我通过curl使用SOAP发送,我很确定我的请求正在运行,但我收到以下错误
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Request XML Schema Validation failed. org.xml.sax.SAXParseException; cvc-elt.1.a: Cannot find the declaration of element 'soapenv:Envelope'.</faultstring>
</soapenv:Fault>
</soapenv:Body>
有没有人见过这个错误?我正在使用php对请求进行字符串处理,然后使用CURL将其传递到CURLOPT_POSTFIELDS
有人可以帮忙吗?
答案 0 :(得分:0)
实际上错误取决于服务器,
在任何情况下,您都应该使用WSDL来代替php生成器或直接使用CURL,因为它可以确保XML请求是从PHP对象构造得很好的。 PHP SoapClient可以处理任何Web服务。使用PackageGenerator项目生成的任何PHP SDK都可以像魅力一样工作。如果没有,您也可以覆盖SoapClient实例,以便为请求实现自己的逻辑。