PHP中的SOAP请求与CURL - soapenv:Envelope

时间:2018-03-26 22:04:07

标签: php curl soap

我有一个请求,我通过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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

实际上错误取决于服务器,

在任何情况下,您都应该使用WSDL来代替php生成器或直接使用CURL,因为它可以确保XML请求是从PHP对象构造得很好的。 PHP SoapClient可以处理任何Web服务。使用PackageGenerator项目生成的任何PHP SDK都可以像魅力一样工作。如果没有,您也可以覆盖SoapClient实例,以便为请求实现自己的逻辑。