SOAP错误。没有得到正确的结构返回

时间:2013-06-24 15:04:15

标签: php soap

我有一个网站,其中包含一个在某些点发出各种SOAP请求的表单。其中一个请求获取返回的感应时间列表,并将其显示给用户,以便他们选择一个。 我从SOAP服务中获得了很好的结果,但遗憾的是它似乎没有正确显示信息,甚至根本没有显示返回的对象键。 我已经与SOAP端的一个开发人员联系了,他说服务很好并且吐出了正确的信息。他提供了一个screentshot:

enter image description here

以下是我调用此信息所需方法的代码:

public function getInductionTimes($options) {
        $client = $this->createSoapRequest();
        $inductionTimes = $client->FITinductionlist($options);
        //die(print_r($inductionTimes));
        return $inductionTimes;
    }

    private function createSoapRequest() {
        $url = 'https://fitspace.m-cloudapps.com:444/FITSPACE/MHservice.asmx?WSDL';
        $options["connection_timeout"] = 25;
        $options["location"] = $url;
        $options['trace'] = 1;
        $options['style'] = SOAP_RPC;
        $options['use'] = SOAP_ENCODED;

        $client = new SoapClient($url, $options);
        //die(print_R($client->__getFunctions()));
        return $client;
    }   

正如你所看到的,我收到它后立即打印代码以检查我要归还的内容是这样的:

enter image description here

正如您所看到的,这个IDdtstring字段被完全忽略了。 有没有人对为什么会发生这种情况有任何想法?它与编码有关吗?我似乎无法解决这个问题! 感谢

2 个答案:

答案 0 :(得分:0)

我能够使用您的基本代码正确检索字段,包括IDdtstring。也许您没有正确发送参数?

function getInductionTimes($options) {
    $client = createSoapRequest();
    $inductionTimes = $client->FITinductionlist($options);
    die(print_r($inductionTimes));
    return $inductionTimes;
}

function createSoapRequest() {
    $url = 'https://fitspace.m-cloudapps.com:444/FITSPACE/MHservice.asmx?WSDL';
    $options["connection_timeout"] = 25;
    $options["location"] = $url;
    $options['trace'] = 1;
    $options['style'] = SOAP_RPC;
    $options['use'] = SOAP_ENCODED;

    $client = new SoapClient($url, $options);
    //die(print_R($client->__getFunctions()));
    return $client;
}

getInductionTimes(array("IDDate" => "2013-06-28T13:00:00+01:00", "GYMNAME" => "Bournemouth"));

答案 1 :(得分:0)

我设法通过在我的SOAP选项数组中添加代码行来解决这个问题,然后我认为我的WSDL缓存在PHP中是一个问题:

$ options ['cache_wsdl'] = WSDL_CACHE_NONE;