我必须向远程SOAP端点发送请求。这是PHP生成的SOAP请求,但失败了:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org">
<SOAP-ENV:Body>
<ns1:GetParameterList>
<param>TKERES</param>
</ns1:GetParameterList>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
如果我以这种方式手动编写请求XML并通过cURL发送,则效果很好:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<GetParameterList xmlns="http://tempuri.org">
<param>TKERES</param>
</GetParameterList>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
为什么第一个失败而第二个正常工作?
答案 0 :(得分:0)
在这里显而易见的是,您的第一个代码段(无效的代码段)与有效的代码段不同。
具体来说,下面的属性看起来在完全不同的地方。
xmlns =“ http://tempuri.org”
我从SOAP的经验中知道,有时像这样的更改可能会导致它失败。因此,请尝试是否可以调整PHP生成请求的方式,以使其与您的XML手写请求相匹配。