2010-06-14 4 views
5

Quand j'envoyer ci-dessous demande, je reçois Wrong Version » exception.SoapClient lance une version incorrecte

<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> 

ci-dessus demande est convertie en code 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); 

Au-dessus de la ligne throws Exception « version incorrecte Tout le monde m'aider à résoudre ce problème

Répondre

1

semble que vous utilisez la mauvaise version;) - avez-vous essayé d'ajouter 'soap_version'=>'1.2' (ou 1.1, selon la version est nécessaire) aux options de votre soap_client?

+0

Je suis essayé avec les deux versions. Mais je ne réussis pas encore – 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' 

essayez le code ci-dessus. cela m'a aidé

0

J'ai aussi eu ce problème. Le problème dans mon cas était que je ne transmettais pas un paramètre attendu (et donc requis) sans rejeter une exception SoapFault. Peut-être que c'est utile à quelqu'un.

Questions connexes