PHP soap服务器在处理布尔值时的奇怪行为

时间:2018-03-22 09:41:45

标签: php xml soap soapserver

我们正面临一个PHP soap服务器的奇怪行为。 WSDL包含一个简单的xsd布尔元素。对于此字段,值为false(仅为false!)的简单soap请求有时会在soap服务器本身处理的std类/属性中以null结尾。

soap请求始终包含布尔值false(通过服务器端的文件输入检查)。

它表明第一个请求无法正常工作。以下似乎是正确的。

这种竞争条件可能发生的一些想法?

更新:以下是一些可能有用的代码。

WDSL xsd元素:

<xsd:element name="isSent" type="xsd:boolean">

肥皂要求:

<isSent>false</isSent>

肥皂服务器:

    $serverOptions = [
        'soap_version' => SOAP_1_2,
        'encoding'     => 'UTF-8',
        'cache_wsdl'   => WSDL_CACHE_MEMORY
    ];

    $soapServer = new SoapServer((string)$request->getWsdlUri(), $serverOptions);
    $serviceWrapper->setRequest($request);
    $this->request->setBody(file_get_contents('php://input'));
    $soapServer->handle($this->request->getBody());

    //When receiving the std class after soap server handles the request the issue happens...

0 个答案:

没有答案