SOAP客户端返回“错误版本”错误

时间:2013-10-28 12:37:14

标签: php soap

大家好我想用php做一个SOAP请求,不幸的是它总是返回Error'Wrong Version'。

我的请求如下:

<?php
$option=array('trace'=> true, 'cache_wsdl' => WSDL_CACHE_NONE, 'soap_version' => SOAP_1_2,     'exeptions' => true,);

$soapClient=new SoapClient('http://www.SOMEURL.net/SOAPAPI/HEX_XMLIF_1_1_0-0?wsdl',$option);
$soapClient->__setLocation('http://www.SOMEURL.net/SOAPAPI/HEX_XMLIF_1_1_0-0');
try{
$parameters = array(
                'Version' => '1.1.0',
                'TransactionIdentifier' => 'X4711',
                'TimeStamp' => '2013-10-24T16:56:10',
                'Target' => 'Test',
                'POS' => array (
                       'Source' => array(
                              'RequestorID' => array(
                                    'ID' => '709900001',
                                    'ID_Context' => '1234',
                                    'ID_Operator' => 'BJT',
                                    'ID_Token' => '135975505',
                                    'ID_Key' => 'znt'),
                              'ISOCurrency' => 'EUR',
                              'ISOCountry' => 'DE'),
                              ),
                'CarPark' => array(
                       'Code' => 'FRA8')
                );

$soapClient->CarParkInformation($parameters);

}catch(SoapFault $fault){

  echo '<br/><br/> Error Message : <br/>',
  $fault->getMessage();
  echo '<br/><br/>'; 
  echo 'Request : <br/><xmp>',
  $soapClient->__getLastRequest();
  echo '</xmp><br/> Response : <br/><xmp>',
  $soapClient->__getLastResponse();}
?> 

根据WSDL文件附带的文档,我的请求很好。我唯一缺少的是标题。文档中的标题为空(“”) - &gt;不知道如何在请求中添加空标头。 我不认为这是版本错误的原因......?

创建的请求如下所示:

<?xml version="1.0" encoding="UTF-8"?> 
        <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="de.znt.hexapi">
            <SOAP-ENV:Body>
                <ns1:GetCarParkInformationRQ>
                    <ns1:Version>1.1.0</ns1:Version>
                    <ns1:TransactionIdentifier>X4711</ns1:TransactionIdentifier>
                    <ns1:TimeStamp>2013-10-24T16:56:10</ns1:TimeStamp>
                    <ns1:Target>Test</ns1:Target>
                    <ns1:POS>
                        <ns1:Source>
                            <ns1:RequestorID>
                                <ns1:ID>709900001</ns1:ID>
                                <ns1:ID_Context>1234</ns1:ID_Context>
                                <ns1:ID_Operator>BJT</ns1:ID_Operator>
                                <ns1:ID_Token>135975505</ns1:ID_Token>
                                <ns1:ID_Key>znt</ns1:ID_Key>
                            </ns1:RequestorID>
                            <ns1:ISOCurrency>EUR</ns1:ISOCurrency>
                            <ns1:ISOCountry>DE</ns1:ISOCountry>
                        </ns1:Source>
                    </ns1:POS>
                    <ns1:CarPark>
                        <ns1:Code>FRA8</ns1:Code>
                    </ns1:CarPark>
                </ns1:GetCarParkInformationRQ>
            </SOAP-ENV:Body>
        </SOAP-ENV:Envelope>

我不知道为什么我会收到“错误的版本”错误,我尝试使用1.1和1.2并且我已经测试了几天。 有没有人知道该怎么做?

1 个答案:

答案 0 :(得分:2)

问题已解决 - 我一直在使用错误的端点。