我正在使用标准的PHP Soap客户端向第三方服务做SOAP请求,而且我总是得到一个" Soap Fault:错误的版本"错误。
仍然,我能够获得原始响应(使用$ client-> __ getLastResponse())并返回其成功。 我试着设置" soap_version" " SOAP_1_1"的选项和" SOAP_1_2"但仍然是同样的错误。 "内容类型"并且soap命名空间在新请求中正确更改,因此它正在应用更改。
我也禁用了wsdl缓存。
我认为这可能是WSDL的问题,它适用于SOAP 1.1,但我尝试使用"非WSDL"模式,它给出了同样的错误。
如果我使用Postman发出相同的请求,exaclty相同的消息和标题一切正常,这让我认为是PHP Soap客户端完成的一些特殊性或验证。
还有什么想法?
答案 0 :(得分:0)
发现了这个问题。 第三方没有使用有效的SOAP消息进行响应,而是使用纯XML,这使得SOAP客户端无法处理消息并发出错误。