PHP SOAP请求失败

时间:2018-10-01 10:36:26

标签: php soap

我必须向远程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>

为什么第一个失败而第二个正常工作?

1 个答案:

答案 0 :(得分:0)

在这里显而易见的是,您的第一个代码段(无效的代码段)与有效的代码段不同。

具体来说,下面的属性看起来在完全不同的地方。

  

xmlns =“ http://tempuri.org”

我从SOAP的经验中知道,有时像这样的更改可能会导致它失败。因此,请尝试是否可以调整PHP生成请求的方式,以使其与您的XML手写请求相匹配。