2010-06-14 3 views
5

Когда я отправки ниже запроса, я получаю «Wrong Version исключение».SoapClient бросает Неверная версия

<OTA_HotelGetMsgRQ xmlns="http://www.opentravel.org/OTA/2003/05" 
    TimeStamp="2001-12-17T09:30:47.0Z" Version="4" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Messages> 
     <Message HotelCode="123" HotelName="Test Hotel" ChainCode="321" 
      ReasonForRequest="Reservation Retrieval" RequestCode="Optional" 
      ChainName="Test Chain" MessageType="All" StartSeqNmbr="1" 
      EndSeqNmbr="10" /> 
    </Messages> 
</OTA_HotelGetMsgRQ> 

выше запроса преобразуется в ZEND код

$client = new zend_soap_client(null, 
     array(
       'location' => 'http://url...', 
       'Uri' =>"http://www.opentravel.org/OTA/2003/05" 
     ) 
); 

$request = array(
     array('Messages'=> 
       array ('Message' => 
         array (
           'HotelCode' => '123', 
           'HotelName' => 'Test Hotel', 
           'ChainCode' => '321', 
           'ReasonForRequest' => 'Reservation Retrieval', 
           'RequestCode' => 'Optional', 
           'ChainName' => 'Test Chain', 
           'MessageType' => 'All', 
           'StartSeqNmbr' => '1', 
           'EndSeqNmbr' => '10' 
         ) 
       ) 
     ) 
); 

$result = $client->OTA_HotelGetMsgRQ ($request); 

Над линией кидает исключение «Неверная версия '. Anyone help me, как решить эту проблему

ответ

1

похоже, что вы используете неправильную версию;) - пытались ли вы добавить 'soap_version'=>'1.2' (или 1.1, в зависимости от того, какая версия необходима) к параметрам вашего soap_client?

+0

Я пробовал с обеих версий. Но я еще не успел – sivansethu

1
$autodiscover = new Zend_Soap_AutoDiscover(); 
$autodiscover->setClass('Core_Soap_Test'); 
$autodiscover->setUri(sprintf($this->_WSDL_URI,0)); 
$autodiscover->handle(); 

$this->_WSDL_URI = '"http://WWW.EXAMPLE.COM/soap/index/wsdl/%s/?wsdl' 

попробуйте использовать код выше. это помогло мне

0

У меня тоже была эта проблема. В моем случае проблема заключалась в том, что я не передавал ожидаемый (и, следовательно, необходимый) параметр, не отбрасывая исключение SoapFault. Может быть, это кому-то полезно.

Смежные вопросы